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]
Ich bekomme keine Fehler, aber die Änderungen sind nicht zurückrollen, wie sie sollen ... irgendwelche Gedanken?Kann nicht SQL Server 2012-Transaktion Rollback
Da es in einem TRY-Block ist, sollte es nur zurückrollen, wenn der TRY fehlschlägt. Wenn Sie keine Fehler haben, wäre das erwartete Ergebnis, dass der TRAN nicht zurückgesetzt wird. Haben Sie diese Abfrage ohne TRY/CATCH ausgeführt? –
SELECT * VON [Produktion]. [Produkt] \t BEGIN TRAN; \t \t UPDATE [Production]. [Artikel] \t \t SET Farbe = 'Off White' \t \t SELECT * \t \t FROM [Produktion]. [Artikel] \t \t SELECT @@ TRANCOUNT AS 'Transaktion Count' \t COMMIT TRAN; \t ROLLBACK TRAN; SELECT *, @@ TRANCOUNT AS 'Transaktion Count' FROM [Produktion]. [Artikel]‘ –
Änderungen werden noch nicht zurückgerollt –