0
SELECT *
FROM [Production].[Product]
BEGIN TRY
BEGIN TRAN;
UPDATE [Production].[Product]
SET Color = 'Off White'
SELECT *
FROM [Production].[Product]
SELECT @@TRANCOUNT AS 'Transaction Count'
COMMIT TRAN;
END TRY
BEGIN CATCH
ROLLBACK TRAN;
END CATCH;
SELECT *, @@TRANCOUNT AS 'Transaction Count'
FROM [Production].[Product]
私はエラーは発生していませんが、変更は予定通りにロールバックされません。私は、それが必要な私は富を共有するだろうと思ったようロールバックするSQL Server 2012トランザクションを取得できません
TRYブロック内にあるため、TRYに失敗した場合にのみロールバックする必要があります。エラーがなければ、TRANがロールバックされないことが予想されます。 TRY/CATCHなしでこのクエリを実行しましたか? –
SELECT * FROM [プロダクション] \t BEGIN TRAN; \t \t UPDATE [製造]。[製品] \t \t SET色= \t \t SELECT 'オフホワイト' * [製造]。[製品] 'のトランザクション件数' AS \t \t SELECT @@ TRANCOUNT FROM \t \t \t COMMIT TRAN; \t ROLLBACK TRAN; SELECT *、@@ FROM TRANCOUNT AS「取引件数」 [製造]。[製品]」 –
変更がまだロールバックされていないあなたが自動コミットのトランザクションがオンになっている可能性がありますように –