我使用ADO.NET以及sqlcmd实用程序将SQL脚本发送到SQL Server2008。使用;和GO分隔SQL块之间有什么区别?
;
GO
GO实际上不是T- SQL命令。该GO命令由Microsoft工具引入,是一种用于分隔批处理语句(例如存储过程的末尾)的方法。GOMicrosoft SQL堆栈工具支持该工具,但正式不是其他工具的一部分。
您不能将aGO放入SQL字符串中并将其作为ADO.NET命令对象的一部分发送,因为SQL本身不理解该术语。探查器的另一种证明方法是:设置一些GO在Query Analyzer / Management Studio中使用的语句,然后在执行时运行探查器。您将看到它们作为单独的命令发布到服务器。
分号用于表示语句本身的结束,而不必表示整个批处理。
http://msdn.microsoft.com/en- us/library/ms188037.aspx