我知道在 SQL Server 中GO
被视为批次分隔符 https://stackoverflow.com/questions/2299249/what-is-the-use-of-go-in-sql-server-management-studio.
我的问题是:批次分离器有什么意义?它给您带来什么好处以及您为什么要使用它?
示例:我经常看到它在 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
(来源:技术网文档 http://technet.microsoft.com/en-us/library/ms187807.aspx):
在这个例子中,它没有任何用处。
然而,很多语句必须是批次中唯一的语句。
Such as CREATE PROCEDURE
.
通常,在进行架构更改(例如,向现有表添加新列)后,必须在不同的批次中单独编译使用新架构的语句。
通常,可以替代提交由 分隔的单独批次GO
是在子批处理中执行 SQL,使用EXEC
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)