在SQL Server中,如何将大量的tsql语句分成批处理?我应该在存储过程或函数中使用GO语句吗?我是否应该在显式事务管理情况下使用GO语句(在BEGIN TRANSACTION和ROLLBACK TRANSACTION或COMMIT TRANSACTION之间) ? 关于这个主题有一些最佳实践吗? 非常感谢提前。
最佳答案
GO
实际上并不是 SQL 关键字 - 它是 interpreted by SQL Server Management Studio 。所以你不能在存储过程中使用它。
如果您正在为 SSMS 编写脚本,则可以在事务内使用 GO
,但要小心错误处理 - 如果发生错误,事务将回滚,但仅回滚当前批处理将被中止,然后继续执行下一个批处理。请参阅this question .
至于最佳实践,我个人仅在必要时才使用 GO
(例如,在创建多个存储过程时 - 每个存储过程都必须有自己的批处理)。 GO
语句越少,处理错误的工作就越少。
关于sql-server-2005 - 在SQL Server中,如何将大量sql语句分成批处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2918984/