T-SQL中的go是什么意思?

Python019

T-SQL中的go是什么意思?,第1张

SQL Server 实用工具将 GO 解释为应将当前的 Transact-SQL 批处理语句发送给 SQL Server 的信号。当前批处理语句是自上一 GO 命令后输入的所有语句,若是第一条 GO 命令,则是从特殊会话或脚本的开始处到这条 GO 命令之间的所有语句。GO 命令和Transact-SQL 语句不可在同一行上。但在 GO 命令行中可包含注释。用户必须遵照使用批处理的规则。例如,在批处理中的第一条语句后执行任何存储过程必须包含 EXECUTE 关键字。局部(用户定义)变量的作用域限制在一个批处理中,不可在 GO 命令后引用。 USE pubsGODECLARE @MyMsg VARCHAR(50)SELECT @MyMsg = 'Hello, World.'GO -- @MyMsg is not valid after this GO ends the batch. -- Yields an error because @MyMsg not declared in this batch. PRINT @MyMsgGOSELECT @@VERSION-- Yields an error: Must be EXEC sp_who if not first statement in -- batch. sp_whoGOSQL Server 应用程序可将多条 Transact-SQL 语句作为一个批处理发给 SQL Server 去执行。在此批处理中的语句编译成一个执行计划。程序员在 SQL Server 实用工具中执行特定语句,或生成 Transact-SQL 语句脚本在 SQL Server 实用工具中运行,用 GO 来标识批处理的结束。如果基于 DB-Library、ODBC 或 OLE DB APIs 的应用程序试图执行 GO 命令时会收到语法错误。SQL Server 实用工具永远不会向服务器发送 GO 命令。权限GO 是一个不需权限的实用工具命令。可以由任何用户执行。示例下面的示例创建两个批处理。第一个批处理只包含一条 USE pubs 语句,用于设置数据库上下文。剩下的语句使用了一个局部变量,因此所有的局部变量声明必须在一个批处理中。

SQL中的go、begin、end的用法说明如下:

go向SQL Server实用程序发出一批Transact-SQL语句结束的信号。 Go分批执行t-sql语句 (如果该步骤成功,则执行下一步,即一次执行一个步骤)。

BEGIN和END语句用于将多个Transact-SQL语句组合为一个逻辑块。 BEGIN和END语句可用于控制流语句必须执行两个或多个Transact-SQL语句的块的情况。

BEGIN和END语句必须成对使用:不能单独使用。 BEGIN语句显示在一行上,然后是Transact-SQL语句块。 最后,END语句显示在单独的行上,指示语句块的结尾。

扩展资料:

例如,当IF语句仅控制一个Transact-SQL语句的执行时,无需使用BEGIN或END语句:

IF (@@ERROR <>0)

SET @ErrorSaveVariable = @@ERROR

如果@@ ERROR为0,则仅跳过SET语句。

当计算结果为FALSE时,使用BEGIN和END语句使IF语句跳过语句块:

IF (@@ERROR <>0)

BEGIN

SET @ErrorSaveVariable = @@ERROR

PRINT 'Error encountered, ' +

CAST(@ErrorSaveVariable AS VARCHAR(10))

END