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 * ОТ [Производство]. [Продукт] \t BEGIN TRAN; \t \t UPDATE [Производство]. [Product] \t \t SET Color = 'Кремовый' \t \t SELECT * \t \t FROM [производства]. [Product] \t \t SELECT @@ TRANCOUNT AS 'транзакции графа' \t COMMIT TRAN; \t ROLLBACK TRAN; SELECT *, @@ TRANCOUNT AS 'Количество транзакций' FROM [производства]. [Product]» –
Изменений еще не откатываются –