�g�����U�N�V������p���Ē����o�^�������FSQL���H�u���i26�j

» 2002�N11��26�� 00��00�� ���J

���H�I�ȃg�����U�N�V�����̍\���Ǝ��s

�@����́A�g�����U�N�V�����𗘗p���������H�I�ȃv���O�����ɒ��킵�܂��B�O��́A�g�����U�N�V�������\������SQL���ł���uBEGIN TRANSACTION�v�uCOMMIT TRANSACTION�v�uROLLBACK TRANSACTION�v��p���āA�g�����U�N�V�����̍l������������܂����B����́ANorthwind�f�[�^�x�[�X�ɑ΂��āA�u������o�^�����v�Ƃ����������A�g�����U�N�V�����𗘗p���Ď��s���܂��B

�@�܂��A����̗��̉����e�Ղɂ��邽�߂ɁANorthwind�f�[�^�x�[�X�ɒ�`����Ă���e�[�u���Ԃ̊֘A��}�ŕ\�����Ă݂܂��傤�B�����ł́ASQL Server Enterprise Manager�́u�_�C�A�O�����쐬�@�\�v�𗘗p���܂��B

�@�ł͑����A���̃X�e�b�v�ɏ]���ė������s���Ă݂܂��傤�B

����o�ꂷ��g�����U�N�V�����̃R�}���h�Q�́ASQL Server 2000���ނɉ�����Ă��܂�


�_�C�A�O�����쐬�@�\�𗘗p����

Enterprise Manager�Ń��b�N�󋵂��m�F����

(1) Enterprise Manager���N������B

(2) ���[�ɕ\�������u�c���[�v�ŁA�ȉ������ɓW�J����B

1. Microsoft SQL Servers
2. SQL Server �O���[�v
3. �T�[�o�[��
4. �f�[�^�x�[�X
5. Northwind
6. �_�C�A�O����

(3) �_�C�A�O�����A�C�R�����E�N���b�N���A�u�V�K�f�[�^�x�[�X�_�C�A�O�����v��I������B

���1�@�܂��쐬�E�B�U�[�h���N��������i��ʂ��N���b�N����Ɗg��\�����܂��j ���1�@�܂��쐬�E�B�U�[�h���N��������i��ʂ��N���b�N����Ɗg��\�����܂��j

(4) �u�f�[�^�x�[�X�_�C�A�O�����쐬�E�B�U�[�h�v���N������̂ŁA�u�����v�{�^�����N���b�N����

(5) �u�lj�����e�[�u���̑I���v��ʂ��\�������B�����ŁA�����́u�g�p�ł���e�[�u���v���X�g�{�b�N�X���A�uOrders�v�e�[�u����I������

(6) �u�֘A����e�[�u���������I�ɒlj��v�`�F�b�N�{�b�N�X���N���b�N���A�֘A����e�[�u���̃��x�����u10�v�ɃZ�b�g����

���2�@�lj��e�[�u���̑I���i��ʂ��N���b�N����Ɗg��\�����܂��j ���2�@�lj��e�[�u���̑I���i��ʂ��N���b�N����Ɗg��\�����܂��j

(7) �u�lj��v�{�^�����N���b�N����B

(8) �u�_�C�A�O�����ɒlj�����e�[�u���v�Ƀe�[�u�������X�g���ꂽ�̂��m�F���A�u�����v�{�^�����N���b�N����B

(9) �u�f�[�^�x�[�X�_�C�A�O�����쐬�E�B�U�[�h�̊����v��ʂ��\�������̂ŁA�u�����v�{�^�����N���b�N����B

���3�@�f�[�^�x�[�X�_�C�A�O�����쐬�����i��ʂ��N���b�N����Ɗg��\�����܂��j ���3�@�f�[�^�x�[�X�_�C�A�O�����쐬�����i��ʂ��N���b�N����Ɗg��\�����܂��j

(10) �����I�Ɋ֘A�}���쐬����A�\�������B�e�[�u���̈ʒu�����₷����������ƁA���̐}�̂悤�ɂȂ�B

���4�@�e�[�u���Ԋ֘A�}�i��ʂ��N���b�N����Ɗg��\�����܂��j ���4�@�e�[�u���Ԋ֘A�}�i��ʂ��N���b�N����Ɗg��\�����܂��j

(11) ����̃f�B�X�N�A�C�R�����N���b�N���A���O��t���ĕۑ�����B

�@�����ō쐬���ꂽ�_�C�A�O�����ɂ���āA�e�[�u���Ԃ̃����[�V�������m�F���邱�Ƃ��ł��܂��B���ꂼ��̃{�b�N�X���e�[�u���A�����ăe�[�u���ԂɈ����ꂽ���������[�V������\���Ă��܂��B�e�[�u���⃊���[�V������I�����ĉE�N���b�N����ƃR���e�L�X�g���j���[���\������܂��̂ŁA�u�v���p�e�B�v��I������ƃe�[�u���̒�`�⃊���[�V�����̒�`�i�O���L�[�̒�`�j���Q�Ƃ��邱�Ƃ��”\�ł��B

�@�ł́A���̃_�C�A�O�������Q�Ƃ��Ȃ���A�g�����U�N�V�����̗������s���Ă����܂��傤�B

�����̓o�^

�@����́A�����̓o�^�����{���Ă����܂��B���̂悤�Ȓ������󒍂����Ƃ��܂��B

�ڋqID ALFKI �󒍓� 2002/11/11
�ڋq�� Alfreds Futterkiste �S���ҁiID�j Anne Dodsworth(9)
�z���� Mr. Yamada �[�i�\��� 2002/11/17
�z����Z�� 1-1-1Yurakucho,Chuo-ku,
Tokyo, Japan 111-0001
�^���ƎҁiID�j Federal Shipping(3)
���� 100 �@ �@

����

No. ���iID ���i�� �P�� ���� �l������ �v
1 10 Ikura 31 10 2�� 303.8
2 13 Konbu 6 5 0�� 30

�@����́A�ڋqAlfreds Futterkiste�Ђ���]�ƈ���Anne Dodsworth��11��11���Ɏ󒍂����󒍓`�[�������Ă��܂��B�󒍂������i��2��15�_�ŁA11��17���܂łɔ[�i����K�v������܂��B���̓`�[���A�f�[�^�x�[�X�ɓo�^���Ă݂܂��傤�B

�@���1�́A�g�����U�N�V�����𗘗p���Ď󒍓`�[��o�^����SQL���ł��B�܂��̓N�G���A�i���C�U������s���Ă݂܂��傤�B

�y���2�z

1 DECLARE @OrderID INT
2 DECLARE @ERROR INT
3 
4 WHILE (1>0)
5 BEGIN
6 BEGIN TRANSACTION
7 
8 INSERT INTO Orders (
9 CustomerID,
10 EmployeeID ,
11 OrderDate,
12 RequiredDate,
13 ShipVia,
14 Freight,
15 ShipName,
16 ShipAddress,
17 ShipCity,
18 ShipRegion,
19 ShipPostalCode,
20 ShipCountry
21 ) VALUES (
22 'ALFKI',
23 9,
24 '2002/11/11',
25 '2002/11/17',
26 3,
27 100,
28 'Mr. Yamada',
29 '1-1-1 Yurakucho',
30 'Chuo-ku',
31 'Tokyo',
32 '111-0001',
33 'Japan' )
34 
35 SET @ERROR = @@ERROR
36 SET @OrderID = @@IDENTITY
37 
38 IF @ERROR > 0
39 BEGIN
40 ROLLBACK TRANSACTION
41 PRINT 'TRANSACTION ROLLBACKED'
42 BREAK
43 END
44 
45 INSERT INTO "Order Details" (
46 OrderID,
47 ProductID,
48 UnitPrice,
49 Quantity,
50 Discount
51 ) VALUES (
52 @OrderID,
53 10,
54 31,
55 10,
56 0.02 )
57 
58 SET @ERROR = @@ERROR
59 
60 IF @ERROR > 0
61 BEGIN
62 ROLLBACK TRANSACTION
63 PRINT 'TRANSACTION ROLLBACKED for OrderID=' + 
CONVERT(VARCHAR(10), @OrderID)
64 BREAK
65 END
66 
67 INSERT INTO "Order Details" (
68 OrderID,
69 ProductID,
70 UnitPrice,
71 Quantity,
72 Discount
73 ) VALUES (
74 @OrderID,
75 13,
76 6,
77 5,
78 0 )
79 
80 SET @ERROR = @@ERROR
81 
82 IF @ERROR > 0
83 BEGIN
84 ROLLBACK TRANSACTION
85 PRINT 'TRANSACTION ROLLBACKED for OrderID=' + 
CONVERT(VARCHAR(10), @OrderID)
86 BREAK
87 END
88 
89 COMMIT TRANSACTION
90 PRINT 'TRANSACTION COMMITED for OrderID=' + 
CONVERT(VARCHAR(10), @OrderID)
91 BREAK
92 
93 END
���5�@�N�G���A�i���C�U�Ɏ󒍓`�[��o�^����i��ʂ��N���b�N����Ɗg��\�����܂��j ���5�@�N�G���A�i���C�U�Ɏ󒍓`�[��o�^����i��ʂ��N���b�N����Ɗg��\�����܂��j

�@���s���ʂ̃��b�Z�[�W�ɁuTRANSACTION COMMITED for OrderID=xxxxx�v�ƕ\�������΁ASQL���̎��s�͐����ł��BOrderID�͎����̔Ԃ����Ă��邽�߁A�F����̎��s�‹��Ɛ����͈Ⴄ�Ǝv���܂��̂ŁA�ȉ������2�ł��ǂݑւ��Ă��������ˁB�ł́A���ۂɃI�[�_�[���o�^���ꂽ���AOrders�e�[�u����Order Details�e�[�u�����Q�Ƃ��Ă݂܂��傤�B

�y���3�z

1 SELECT * FROM Orders WHERE OrderID = 18947
2 SELECT * FROM "Order Details" WHERE OrderID = 18947
���6�@�I�[�_�[�̓o�^���m�F����i��ʂ��N���b�N����Ɗg��\�����܂��j ���6�@�I�[�_�[�̓o�^���m�F����i��ʂ��N���b�N����Ɗg��\�����܂��j

�@Orders�e�[�u���Ƀf�[�^��1���AOrder Details�e�[�u���Ƀf�[�^��2���o�^����Ă���̂��m�F�ł����ł��傤���B�ł́ASQL���̉���Ɉڂ�O�ɁA����1�Šm�F�̃X�e�b�v�����s���Ă݂܂��傤�B��قǂ����1��SQL��75�s�ڂ́u13�v���u130�v�ɕύX���Ă���1�x���s���Ă݂܂��BProductID��130�̏��i�͓o�^����Ă��Ȃ����߁A�G���[����������͂��ł��B

���7�@���o�^���i��o�^����ƃG���[����������i��ʂ��N���b�N����Ɗg��\�����܂��j ���7�@���o�^���i��o�^����ƃG���[����������i��ʂ��N���b�N����Ɗg��\�����܂��j

�@�G���[���������āA�uTRANSACTION ROLLBACKED�v�ƕ\�����ꂽ�͂��ł��B���2�Ɠ��l�ɁA�e�[�u���Ƀf�[�^���o�^����Ă��邩�ۂ����m�F���Ă݂܂��傤�B

���8�@Order �e�[�u���Ŗ��o�^���m�F�i��ʂ��N���b�N����Ɗg��\�����܂��j ���8�@Order �e�[�u���Ŗ��o�^���m�F�i��ʂ��N���b�N����Ɗg��\�����܂��j

�@Orders�e�[�u���ɂ�Order Details�e�[�u���ɂ��f�[�^���o�^����Ă��Ȃ��̂��m�F�ł����ł��傤���B�ł́ASQL���̉���Ɉڂ�܂��傤�B

�e�[�u���Ԃ̊֘A�̊m�F

�@�g�����U�N�V���������̉���Ɉڂ�O�ɁA�܂��A����̗��Ŋ֘A����e�[�u���ɂ‚��Ċm�F���Ă����܂��傤�B�f�[�^�̓o�^�ɂ����Ē��ڊ֘A����e�[�u���́AOrders��Order Details�e�[�u���ł��B����2�‚̃e�[�u���Ƀf�[�^��o�^���邱�ƂŁA�󒍂�o�^�ł��܂��B

�@Orders�e�[�u����Order Details�e�[�u���Ƀf�[�^��o�^���邽�߂ɂ́A��‚��̊֘A����e�[�u���Ƃ̃����[�V������ݒ肷��K�v������܂��B�����[�V������ݒ肷�邽�߂ɂ͂ǂ�����΂悢���Ƃ����΁A�O���L�[�Ƃ��Đݒ肳��Ă���J�����ɁA�Q�Ɛ�̃e�[�u���ɑ��݂���l��ݒ肵�ēo�^����΂����ł��ˁB

�@���1�ō쐬�����_�C�A�O�����𗘗p���ĊO���L�[���m�F���Ă݂܂��傤�BOrders�e�[�u�����E�N���b�N���āA�v���p�e�B��I�����A�����[�V�����V�b�v�^�u��\�����܂��B

���9�@�g�����U�N�V�������J�n����i��ʂ��N���b�N����Ɗg��\�����܂��j ���9�@�g�����U�N�V�������J�n����i��ʂ��N���b�N����Ɗg��\�����܂��j

�@���̃v���p�e�B��ʂ́u�I�����������[�V�����V�b�v�v�h���b�v�_�E�����X�g��\��������ƁA3�‚́��L�����t�������ڂ��\�������Ǝv���܂��B���ꂼ��AFK_Orders_Customer��Customers�e�[�u�����Q�Ƃ���O���L�[�AFK_Orders_Employee��Employees�e�[�u�����Q�Ƃ���O���L�[�AFK_Orders_Shippers��Shippers�e�[�u�����Q�Ƃ���O���L�[�ł��ˁB���̉�ʉ����́uINSERT��UPDATE�ɑ΂��郊���[�V�����V�b�v��K�p����v�`�F�b�N�{�b�N�X���I������Ă���ꍇ�́A�O���L�[���Q�Ɛ�̃e�[�u���ɑ��݂��Ȃ��ꍇ�̓G���[���������A�f�[�^�̓o�^��X�V���ł��܂���B

�@�Ⴆ�΁AOrders�e�[�u���Ƀf�[�^��}�����悤�Ƃ����ꍇ�ɁACustomerID��Ɏw�肵���l��Customers�e�[�u���ɑ��݂��Ȃ������ꍇ�́A�f�[�^���o�^���ꂸ�ɃG���[�ɂȂ�܂��B

�@���̂悤��Orders�e�[�u���̐ݒ���m�F�������ʁAOrders�e�[�u���Ƀf�[�^��o�^����ۂ́ACustomers�e�[�u���AEmployees�e�[�u���AShippers�e�[�u���ɓo�^����Ă���f�[�^���w�肵�ă����[�V������ݒ肷��K�v�����邱�Ƃ�������܂��B

�@���l�ɂ���Order Details�e�[�u�����m�F����ƁAOrders�e�[�u���AProducts�e�[�u���Ƃ̃����[�V������ݒ肷��K�v�����邱�Ƃ�������Ǝv���܂��B

SQL���̉��

�@�ł́A���2��SQL���Ɉڂ�܂��傤�B

�@�܂��A�傫�ȍ\���Ƃ��ẮA1�`2�s�������[�J���ϐ��̐錾�A�����āA4�`93�s���ő傫��WHILE�����\�����Ă��܂��B����WHILE���͌J��Ԃ����s���邽�߂ɗ��p���Ă���킯�ł͂���܂���BTransact-SQL�ł̓G���[�n���h����p�����L�q���ł��Ȃ����߁AWHILE���𗘗p���邱�Ƃō\���I�Ɏ኱���₷�����悭���Ă��܂��B

�@���̂��߁A4�s����WHILE���̌J��Ԃ������́A�u1>0�v�Ƃ��Ă���ABREAK���ɂ�苭���I��WHILE���[�v�𔲂��Ȃ�����A�i���ɌJ��Ԃ��Ď��s���邱�ƂɂȂ��Ă��܂��܂��B���̂悤�ȗp�r��WHILE�����g�p����Ƃ��́A�������[�v�Ɋׂ�Ȃ��悤�ɒ��ӂ��K�v�ł��B

�@6�s���ŁA�g�����U�N�V�������J�n���Ă��܂��B8�`33�s�����AOrders�e�[�u���ɑ΂���INSERT���ł��B���ۂ̃v���O�����ł́AOrders�e�[�u����INSERT����O�ɁACustomerID�AEmployeeID�AShipperID���ꂼ��̖��̂��L�[�ɂ���SELECT���Ō�������K�v�����邩������܂��񂪁A�����ł͏ȗ����Ē��ڃf�[�^���L�q���Ă��܂��B

�@35�s���ł́A@@ERROR�V�X�e���ϐ���@ERROR���[�J���ϐ��ɕۑ����Ă��܂��B@@ERROR�V�X�e���ϐ��́A���O�Ɏ��s����SQL���̃G���[�ԍ���ێ����Ă��܂��B����Ɏ��s�����������Ƃ��ɂ́A0���Z�b�g����܂��B���炩��SQL�������s���Ă��܂��Ɠr�[�ɃN���A����Ă��܂����߁AINSERT���̎��s�����SET����@ERROR���[�J���ϐ��ɕۑ������Ă��܂��B

�@36�s���́A@@IDENTITY�V�X�e���ϐ���@OrderID���[�J���ϐ��ɕۑ����Ă��܂��B@@IDENTITY�V�X�e���ϐ��́A�����̔Ԃ��邽�߂�IDENTITY�w��̃J�����ɑ΂��āA���ۂɊ��蓖�Ă�ꂽ�l�̍ŐV�̂��̂�ێ����Ă��܂��BOrders�e�[�u���́AOrderID�񂪎����̔Ԃ̂��߂�IDENTITY�w�肳��Ă��邽�߁AOrders�e�[�u���ɑ΂��ăf�[�^��INSERT��������́A�����̔Ԃ��ꂽOrderID���ۑ�����܂��B����OrderID�́A���̌�Order Details��o�^����ۂɕK�v�ƂȂ邽�߁A@OrderID���[�J���ϐ��ɕۑ����Ă��܂��B

�@38�s�`43�s���ŁA�ŏ���INSERT���̃G���[���������Ă��܂��B@ERROR��0�ȊO�ł������ꍇ���G���[�Ƃ��Ĕ��肵�Ă��܂��B�G���[�����������ꍇ�́A40�s���Ńg�����U�N�V���������[���o�b�N���A41�s���Ń��b�Z�[�W��\�����Ă��܂��B42�s�ڂł��̌��SQL�������s���Ȃ��悤�ɂ��邽�߂ɁABREAK����WHILE���𔲂��Ă��܂��B

�@45�`65�s���́A�������ׂ�1�s�ڂ̓o�^�ł��B��{�I�ȍ\���́AOrders�e�[�u���̓o�^�̂Ƃ��Ƃ܂����������ł��B52�s�ڂ�OrderID��ւ̒l�̎w��ɁA��قǕۑ�����@OrderID���[�J���ϐ��𗘗p���Ă��܂��B

�@67�`87�s���́A�������ׂ�2�s���̓o�^�ł��B���e�́A1�s���Ƃ܂����������ł��B

�@89�`91�s���́A���ׂĂ̏��������������Ƃ��̏I�������ł��B89�s���Ńg�����U�N�V�������R�~�b�g���A90�s���Ń��b�Z�[�W��\�����A91�s���ł�BREAK����WHILE���𔲂��Ă��܂��B����ŁA���ׂĂ̏������������܂��B

�G���[�̏ꍇ�̎��s����

�@���7�́AProductID���u130�v��Products�e�[�u���ɓo�^����Ă��Ȃ��ԍ��֕ύX�������߁AOrder Details�e�[�u���փf�[�^��o�^���悤�Ƃ����ۂɎQ�Ɛ���������G���[���������܂��B���̂��߁A82�s����@ERROR��0�ȊO�ƂȂ�A84�s���Ńg�����U�N�V���������[���o�b�N����܂��B

�@�����Ń��[���o�b�N�����̂́ABEGIN TRANSACTION�ȍ~�̂��ׂĂ̑���iINSERT�AUPDATE�ADELETE�j�ƂȂ�܂��B���̂��߁A����܂łɎ��s���ꂽOrders�e�[�u���ւ̃f�[�^�o�^�AOrder Details�e�[�u���ւ�1���ڂ̃f�[�^�o�^���L�����Z������A���S�Ɏ��s�O�̏�Ԃɖ߂���܂��B

���̂悤�ɁA�g�����U�N�V������p���邱�ƂŁA�u�󒍖��ׂ�1���ڂ݂̂��o�^���ꂽ�s���S�Ȏ󒍃f�[�^�v���o�^����邱�ƂȂ��A�f�[�^�̐�������ۏ؂��邱�Ƃ��”\�ƂȂ�܂��B

����̗\��

����́A�g�����U�N�V�����̎��H�I�ȗ�ɂ‚��ĉ�����܂����B����́A����\�肵�Ă������b�N�̏ڍׂ��Љ��\��ł�



�uSQL���H�u���v�o�b�N�i���o�[

Copyright © ITmedia, Inc. All Rights Reserved.

�X�|���T�[����̂��m�点PR

���ڂ̃e�[�}

AI for �G���W�j�A�����O
�u�T�v���C�`�F�[���U���v�΍�
1P��V�X�̂��߂̐Ǝ㐫�Ǘ��^�΍�̌�����
OSS�̃T�v���C�`�F�[���Ǘ��A���ׂ��A�N�V�����Ƃ�
Microsoft �� Windows�őO��2024
�V�X�e���J���m�E�n�E �y�����i�r�zPR
���Ȃ��ɂ������߂̋L��PR

RSS�ɂ‚���

�A�C�e�B���f�B�AID�ɂ‚���

���[���}�K�W���o�^

��IT�̃��[���}�K�W���́A �������A���ׂĖ����ł��B���Ѓ��[���}�K�W�������w�ǂ��������B