インクリメントキーSQL Serverのトランザクションのロールバックへの影響

SQL Serverのトランザクションロールバックが付加価値の元の挿入結果から削除された場合は、データをロールバックする前に、つまり、あなたはロールバック後のリードインクリメントキープラス1、プラスの状態を挿入するか、1

 

-最後に挿入されたID列の現在の動作値を取得:
@@ IDENTITYを選択
-テーブルの同一の最後の列の値を取得するには:
SELECT IDENT_CURRENT(「テーブル」)

- あなたが例外をスローシミュレートしたい場合はRAISERRORすることができます 

--RAISERROR(「エラーの説明」、エラーの重大度の符号誤り識別、パラメータの説明のエラー値(これは複数であってもよい)、他のパラメータ)

--print '異常、エラー番号:' +変換(VARCHAR、エラー番号())+ 'エラーメッセージ:' + ERROR_MESSAGE()

TRAN Tran_TestをBEGIN; -トランザクションを開始します
DECLARE @tran_error INTを、
SET @tran_error = 0;
TRY BEGIN
テーブルにINSERTを
RAISERROR( '参照文書は、操作が失敗し、変更されている!'、16 ,. 1);
ENDはTRY
CATCH BEGIN
PRINT「の出現を例外、エラー番号: '+ CONVERT(VARCHAR、ERROR_NUMBER ())+'、 エラーメッセージ: '
+ ERROR_MESSAGE();
SET @tran_error = @tran_error + 1;
END CATCH;
IF(@tran_error> 0)
BEGIN
-エグゼクティブエラー、トランザクションロールバック
ROLLBACK TRAN;
'!'; PRINTを
END;
ELSE
BEGINない
-何の例外を、トランザクションがコミット
TRANをCOMMIT;
'!' PRINT;
END;

SELECT SCOPE_IDENTITY()。
@@ IDENTITYを選択します。

おすすめ

転載: www.cnblogs.com/wangboke/p/11059647.html