【发布时间】:2014-01-09 18:29:30
【问题描述】:
我知道在 SQL Server 中 GO is considered a batch separator。
我的问题是:使用批次分离器有什么意义?它能给您带来什么好处,您为什么要使用它?
示例:我经常看到它在 SQL 代码中使用如下,但我不明白为什么它会被视为最佳实践。据我所知,如果没有所有 GO 语句,代码将是相同的:
USE AdventureWorks2012;
GO
BEGIN TRANSACTION;
GO
IF @@TRANCOUNT = 0
BEGIN
SELECT FirstName, MiddleName
FROM Person.Person WHERE LastName = 'Adams';
ROLLBACK TRANSACTION;
PRINT N'Rolling back the transaction two times would cause an error.';
END;
ROLLBACK TRANSACTION;
PRINT N'Rolled back the transaction.';
GO
(来源:technet documentation):
【问题讨论】:
-
@JohnnyBones,不,它不一样(我什至在我的问题中链接到那个帖子)。那篇文章基本上说 GO 是一个批处理分隔符,但我的问题是问批处理分隔符有什么用
-
查看 tvanfosson 在该问题中提供的答案(26 票)。
-
@JohnnyBones 感谢您指出这个答案。它提供了一些很好的附加背景信息,但没有回答我的根本问题(哎呀,有人甚至在这个问题上留下了评论,询问批处理脚本有什么好处)
标签: sql-server tsql