在T-SQL示例中为什么在USE db之后出现"GO"?

Pet*_*etr 17 sql sql-server

看看msdn,有一个关于"GO"命令的例子.为什么会有:

USE somedb
GO
...
...
Run Code Online (Sandbox Code Playgroud)

在不同的批次中选择db是必要的吗?谢谢你的解释!

Cad*_*oux 15

是否有必要在不同批次中选择db?

不,但是,某些命令必须是批处理中的第一个语句.

例子包括CREATE VIEW,CREATE PROCEDURECREATE TRIGGER.

因此,如果你想这样做:

USE DB

CREATE VIEW X AS SELECT * FROM Y
Run Code Online (Sandbox Code Playgroud)

然后你需要做:

USE DB
GO

CREATE VIEW X AS SELECT * FROM Y
Run Code Online (Sandbox Code Playgroud)

如果您只运行一个USE DB语句,GO则没有用处.

某些命令不要求它们是批处理中的第一个语句:

USE DB
SELECT * FROM X
Run Code Online (Sandbox Code Playgroud)

有时在代码生成中,可能不需要所有GO命令,但生成它们更容易.