T-SQL中的go是什么意思?
2013-06-28 21:14
357 查看
go 是SYBASE和SQL Server中用来表示事物结束,提交并确认结果,相当于ORACLE的Commit
SQL Server 实用工具将 GO 解释为应将当前的 Transact-SQL 批处理语句发送给 SQL Server 的信号。当前批处理语 句是自上一 GO 命令后输入的所有语句,若是第一条 GO 命令,则是从特殊会话或脚本的开始处到这条 GO 命令之间的所有语句。
GO 命令和Transact-SQL 语句不可在同一行上。但在 GO 命令行中可包含注释。
用户必须遵照使用批处理的规则。例如,在批处理中的第一条语句后执行任何存储过程必须包含 EXECUTE 关键字。局部(用户定义)变量的作用域限制在一个批处理中,不可在 GO 命令后引用。
USE pubs
GO
DECLARE @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 @MyMsg
GO
SELECT @@VERSION ;
-- Yields an error: Must be EXEC sp_who if not first statement in
-- batch.
sp_who
GO
SQL 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 语句,用于设置数据库上下文。剩下的语句使用了一个局部变量,因此所有的局部变量声明必须在一个批处理中。这一点可通过在最后一条引用此变量的语句之后才使用 GO 命令来做到。
USE pubs
GO
DECLARE @NmbrAuthors int
SELECT @NmbrAuthors = COUNT ( * )
FROM authors
PRINT ' The number of authors as of ' +
CAST ( GETDATE () AS char ( 20 )) + ' is ' +
CAST ( @NmbrAuthors AS char ( 10 ))
GO
SQL Server 实用工具将 GO 解释为应将当前的 Transact-SQL 批处理语句发送给 SQL Server 的信号。当前批处理语 句是自上一 GO 命令后输入的所有语句,若是第一条 GO 命令,则是从特殊会话或脚本的开始处到这条 GO 命令之间的所有语句。
GO 命令和Transact-SQL 语句不可在同一行上。但在 GO 命令行中可包含注释。
用户必须遵照使用批处理的规则。例如,在批处理中的第一条语句后执行任何存储过程必须包含 EXECUTE 关键字。局部(用户定义)变量的作用域限制在一个批处理中,不可在 GO 命令后引用。
USE pubs
GO
DECLARE @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 @MyMsg
GO
SELECT @@VERSION ;
-- Yields an error: Must be EXEC sp_who if not first statement in
-- batch.
sp_who
GO
SQL 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 语句,用于设置数据库上下文。剩下的语句使用了一个局部变量,因此所有的局部变量声明必须在一个批处理中。这一点可通过在最后一条引用此变量的语句之后才使用 GO 命令来做到。
USE pubs
GO
DECLARE @NmbrAuthors int
SELECT @NmbrAuthors = COUNT ( * )
FROM authors
PRINT ' The number of authors as of ' +
CAST ( GETDATE () AS char ( 20 )) + ' is ' +
CAST ( @NmbrAuthors AS char ( 10 ))
GO
相关文章推荐
- SQL存储过程前面有语句set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ,这是什么意思,数据库存储过程前
- 数据库 T-SQL 里的 GO 是什么意思
- T-SQL 中的 GO 是什么意思?
- SQL语句中GO 和EXEC是什么意思
- T-SQL 中的 GO 是什么意思
- T-SQL中go的意思
- sql server中,N''表示什么意思?
- sql 语句: COLLATE Chinese_PRC_CI_AS什么意思?
- T-SQL 字符串前加 N 是什么意思
- select 1 from ..., sql语句中的1代表什么意思
- over在SQL里就什么意思
- select 1 from ... sql语句中的1代表什么意思?
- SQL中 group by 1, order by 1 语句是什么意思
- (转)select 1 from ... sql语句中的1代表什么意思? .
- select 1 from ... sql语句中的1代表什么意思?
- select 1 from ..., sql语句中的1代表什么意思
- 数据库ORACLE的sql文件中,rem请问是什么意思啊?
- (转)SQL语句中的N'xxxx'是什么意思
- sql加一个%号是什么意思
- SQL server中的collate chinese_prc_ci_as 是什么意思?