sql-server-2005 - 在SQL Server中,如何将大量sql语句分成批处理?

标签 sql-server-2005 t-sql transactions

在SQL Server中,如何将大量的tsql语句分成批处理?我应该在存储过程或函数中使用GO语句吗?我是否应该在显式事务管理情况下使用GO语句(在BEGIN TRANSACTIONROLLBACK TRANSACTIONCOMMIT 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/

相关文章:

sql-server-2005 - 如何从表中的列中删除默认值?

sql - 是否可以使用列序号位置选择sql server数据

c# - 是否可以使用 linq 运行查询来搜索一段时间?

sql - 如何将这两条SQL语句结合起来呢?

sql - 在事务中创建 SQL Server 过程

sql - 根据月份获取最新日期值

sql - TSQL - 行值到列标题,包括更多列值

Postgresql 酸合规性

android - 为什么我的听众没有在这个 Firestore 集中点击这里

c# - TransactionScope 无意中锁定了部分数据库