我的SQL-Server
学习曲线是从前到后的,几年后我正在努力TRANSACTION
有效地使用代码。
如果COMMIT TRANSACTION
没有明确说明,那么ROLLBACK TRANSACTION
如果前面的代码中没有发生错误,那么事务是否会被提交?问题与如下结构有关:
USE MyDataBase;
GO
BEGIN TRANSACTION;
--complex query X here
ROLLBACK TRANSACTION; PRINT N'Rolled back the transaction.';
GO
...我认为在您不希望在前面ROLLBACK TRANSACTION
的脚本中发生错误时对数据库进行更改的情况下使用- 在上面这将是。如果我想在上面明确说明,那么它应该放在哪里?X
COMMIT TRANSACTION
为了让自己更加困惑,我有以下内容 - 为什么它会回滚两次?创建 ? 时是否发生错误ROLLBACK
?
USE WHAnalysis;
GO
BEGIN TRANSACTION;
IF @@TRANCOUNT = 1
SELECT @@TRANCOUNT
--do a complex query here
ROLLBACK TRANSACTION; PRINT N'Rolled back the transaction.';
GO