Jus*_*ner 2 t-sql transactions sql-server-2005
在SQL Server中,如何将大量的tsql语句分成批处理?我应该在存储过程或函数中使用GO语句吗?我应该在显式事务管理情况下使用GO语句(在BEGIN TRANSACTION和ROLLBACK TRANSACTION或COMMIT TRANSACTION之间)吗?关于这个主题是否有一些最佳实践?非常感谢提前.
GO实际上并不是SQL关键字 - 它由SQL Server Management Studio解释.所以你不能在存储过程中使用它.
如果您正在为SSMS编写脚本,则可以GO在事务内部使用,但要小心错误处理 - 如果发生错误,事务将被回滚,但只有当前批处理将被中止,然后执行将继续到下一批.看到这个问题.
至于最佳实践,我个人GO只在必要时才使用(例如,在创建多个存储过程时 - 每个都必须有自己的批处理).越少GO发言,少的工作来处理错误.