在Server中,如何将大量的tsql语句拆分成批处理?我应该在存储过程或函数中使用GO语句吗?是否应该在显式事务管理情况下使用GO语句(在BEGIN事务和回滚事务或提交事务之间)?关于这个话题有什么最佳实践吗?非常感谢。
发布于 2010-05-27 07:23:21
GO实际上不是一个SQL关键字-它是interpreted by SQL Server Management Studio。所以你不能在存储过程中使用它。
如果您正在为SSMS编写脚本,则可以在事务中使用GO,但要小心错误处理--如果发生错误,事务将被回滚,但只有当前批将被中止,然后执行将继续到下一批。见this question。
至于最佳实践,我个人只在必要时才使用GO (例如,在创建多个存储过程时--每个过程都必须有自己的批处理)。GO语句越少,处理错误的工作量就越少。
https://stackoverflow.com/questions/2918984
复制相似问题