5�N�Ԃ�̃��W���[�o�[�W�����A�b�v�ƂȂ���SQL Server 2005�B�{�A�ڂł́ASQL Server 2005�ւ̈ڍs���������Ă���f�[�^�x�[�X�Ǘ��҂Ɍ����A�V�K�Ɏ������ꂽ���܂��܂ȋ@�\�̏ڍׂ��Љ�Ă����B�i�ҏW�ǁj
--Page 1--
SQL CLR�ł̃g�����U�N�V�����Ǘ�
--Page 2--
TransactionScope�ɂ�镪�U�g�����U�N�V�����Ǘ�
--Page 3--
SQL CLR�����ۂ̃v���W�F�N�g�łǂ̂悤�ɐ�������
�܂Ƃ�
�@����܂ő�4�`6���3��ɂ킽���Ă����肵�Ă���SQL CLR�̉��������ōŌ�ƂȂ�܂��B�X�g�A�h�v���V�[�W����[�U�[��`���ȂǁA��ʂ�̗��p�@�����グ�܂����̂ŁA����̓g�����U�N�V�����̊Ǘ��ƁA���ۂ̃v���W�F�N�g�łǂ̂悤��SQL CLR�𗘗p���ׂ������l�@���Ă݂����Ǝv���܂��B
�@�f�[�^�x�[�X�������v���O�����ł́A�g�����U�N�V�����̊Ǘ����K�{�ƂȂ�܂��B�f�[�^�x�[�X���ɔz�u���ꂽ�I�u�W�F�N�g�Ƃ��ăf�[�^������S��SQL CLR�ł��A�g�����U�N�V�����̊Ǘ������������Ƃ͂ł��܂���B
�@SQL CLR��.NET Framework 2.0�ŐV���ɒ��ꂽ�uSystem.Transactions�v���O��ԂƖ��ڂɓ�������Ă���A�O���f�[�^�x�[�X�̏������s���ꍇ�ɗL�p�ȕ��U�g�����U�N�V�������T�|�[�g���Ă��܂��B���U�g�����U�N�V�����ɐG���O�ɁA�܂��͊O���ڑ����s��Ȃ��A���[�J���g�����U�N�V�����݂̂��Ǘ�����ꍇ�̃R�[�h�����Ă݂܂��傤�B
�@���[�J���g�����U�N�V�����̊Ǘ��A�Ƃ����Ă����G�ȏ������s���킯�ł͂���܂���B�����ꂽ�uBEGIN TRANSACTION �c�c�v�̂悤��SQL���̔��s���A�ڑ��I�u�W�F�N�g�iSqlConnection�N���X�j�́uBeginTransaction�v���\�b�h�ɂ���āA���[�J���T�[�o�ɑ���g�����U�N�V�����̊Ǘ����s���܂��BSQL CLR�ł́A���X�g1�̂悤�Ȍ`�ŗ��p�ł��܂��B
//�R���e�L�X�g�ڑ� using (SqlConnection conn = new SqlConnection("context connection=true")) { conn.Open(); //�g�����U�N�V�����J�n SqlTransaction Sqltran = conn.BeginTransaction(); try { SqlCommand cmd = new SqlCommand( "UPDATE Person.Contact SET FirstName=@p1,LastName=@p2" + " WHERE ContactID=1", conn); SqlParameter p1 = new SqlParameter("@p1", null); SqlParameter p2 = new SqlParameter("@p2", "atmark it"); cmd.Parameters.Add(p1); cmd.Parameters.Add(p2); //SqlTransaction�̐ݒ� cmd.Transaction = Sqltran; //UPDATE���̎��s cmd.ExecuteNonQuery(); //�g�����U�N�V�������I�� Sqltran.Commit(); } catch(SqlException ex) { //�g�����U�N�V�����̃��[���o�b�N Sqltran.Rollback(); SqlContext.Pipe.Send("SQL���s�F" + ex.Message); } }
�@��L�̃T���v���ł́A�K�{���ڂւ�null�l�ݒ�ɂ��SQL�G���[���������A�g�����U�N�V���������[���o�b�N����܂��BADO.NET�ɂ��g�����U�N�V�����Ǘ��Ǝ������@�ɈႢ�͂���܂���B�g�����U�N�V�����͐ڑ��iSqlConnection�j���ƂɂЂ��t���Ă���A�����̃f�[�^�x�[�X�ւ̏������Ǘ����邱�Ƃ͂ł��܂���B
�@SQL CLR�̓��[�J���T�[�o�ƊO���T�[�o�ւ̏������ꊇ�ōs����Ƃ��낪���_�ł���A�܂��ASQL CLR�ŏ����ꂽ�I�u�W�F�N�g���̂������̃I�u�W�F�N�g����Ă�邽�߁A����܂ł̃g�����U�N�V�����Ǘ����@�ł͂����̋@�\�ɂ͕͗s���ł��B�����œo�ꂵ���̂�System.Transactions�ɂ�镪�U�g�����U�N�V�����ł��B
�@System.Transactions��.NET Framework 2.0�ŐV���Ɏ������ꂽ���O��Ԃł��B���[�J���^�^���U�^�̃g�����U�N�V�������T�|�[�g���Ă���A�]���̃g�����U�N�V�����Ǘ��ɔ�ׂāA�V���v���Ō����̗ǂ��g�����U�N�V�����̃v���O���~���O���\�ƂȂ�܂��B
�@System.Transactions���O��Ԃ́A���ɑ��l�ȃN���X��C���^�[�t�F�C�X���T�|�[�g���Ă��܂����A�����ł�SQL CLR�ɊW���Ă���TransactionScope�N���X�����グ�܂��BSystem.Transactions���O��Ԃ̏ڍׂ�MSDN2�h�L�������g���Q�Ƃ��Ă��������B
Copyright © ITmedia, Inc. All Rights Reserved.