天道酬勤

(转)T-SQL中go的意思

上一篇 / 下一篇  2008-05-07 16:29:09 / 个人分类:数据库

51Testing软件测试网]ms1_f&if T,S8u

出处:http://www.cnblogs.com/JCSU/articles/1099177.html51Testing软件测试网-? v,d pz\Vx

51Testing软件测试网go:kur-c

go 是SYBASE和SQL Server中用来表示事物结束,提交并确认结果,相当于ORACLE的Commit51Testing软件测试网L_/tY/l p
51Testing软件测试网cn7\#Y$D!S"P$q%^
SQL Server 实用工具将 GO 解释为应将当前的 Transact-SQL 批处理语句发送给 SQL Server 的信号。当前批处理语句是自上一 GO 命令后输入的所有语句,若是第一条 GO 命令,则是从特殊会话或脚本的开始处到这条 GO 命令之间的所有语句。
-Z#C2BS3AD/wx051Testing软件测试网 ?K p&Y8JI
GO 命令和Transact-SQL 语句不可在同一行上。但在 GO 命令行中可包含注释。51Testing软件测试网T~(J V*f8ll4MIXU!`
用户必须遵照使用批处理的规则。例如,在批处理中的第一条语句后执行任何存储过程必须包含 EXECUTE 关键字。局部(用户定义)变量的作用域限制在一个批处理中,不可在 GO 命令后引用。 51Testing软件测试网6~h+I+[1I;HZp'[l9y

USE pubs 51Testing软件测试网m'fYu&p
GO 
t v"O(N6g P2o8F&C0
DECLARE @MyMsg VARCHAR(5051Testing软件测试网1Vu2t m"^~aY
SELECT @MyMsg = 'Hello, World.' 51Testing软件测试网Sb9\ A^*k
GO -- @MyMsg is not valid after this GO ends the batch. 51Testing软件测试网@"R1r*t|?#Z.[7e

Te^AX-k0
-- Yields an error because @MyMsg not declared in this batch. 51Testing软件测试网L+yJ@&al
PRINT @MyMsg 
"zH.`a3X0
GO

2p ]-p8P }.Q;wc0
SELECT @@VERSION51Testing软件测试网$o"_5G,}B"[
-- Yields an error: Must be EXEC sp_who if not first statement in  
nGW&K2h4u0--
 batch. 51Testing软件测试网7^[$e6\8Y[UB
sp_who 51Testing软件测试网{uj&\~g5o-C6N
GO 51Testing软件测试网_ U-Fl"{Rgtv
51Testing软件测试网&J"C9JK rjE&r

SQL Server 应用程序可将多条 Transact-SQL 语句作为一个批处理发给 SQL Server 去执行。在此批处理中的语句编译成一个执行计划。程序员在 SQL Server 实用工具中执行特定语句,或生成 Transact-SQL 语句脚本在 SQL Server 实用工具中运行,用 GO 来标识批处理的结束。51Testing软件测试网c]0PU8c"Y
如果基于 DB-Library、ODBC 或 OLE DB APIs 的应用程序试图执行 GO 命令时会收到语法错误。SQL Server 实用工具永远不会向服务器发送 GO 命令。51Testing软件测试网s,`IUcr ]
权限51Testing软件测试网Pj T]r:G5z0a%W7H
GO 是一个不需权限的实用工具命令。可以由任何用户执行。51Testing软件测试网fF5{,_%eRP
示例
3]4mNXZ_c,D0下面的示例创建两个批处理。第一个批处理只包含一条 USE pubs 语句,用于设置数据库上下文。剩下的语句使用了一个局部变量,因此所有的局部变量声明必须在一个批处理中。这一点可通过在最后一条引用此变量的语句之后才使用 GO 命令来做到。  

E? X eY/a0
USE pubs 
)C5Fz,T7Lk}0
GO 51Testing软件测试网3V:` XA7h!k6G:N
DECLARE @NmbrAuthors int 
H N JKW'P"Pv0
SELECT @NmbrAuthors = COUNT(*51Testing软件测试网2w mv|_,k3E
FROM authors 51Testing软件测试网Z e)Oa6Nh!V
PRINT 'The number of authors as of ' + 51Testing软件测试网6hK$R!U1G$Y @#JX
      
CAST(GETDATE() AS char(20)) + ' is ' + 
3? hGx%T_0      
CAST(@NmbrAuthors AS char (10)) 51Testing软件测试网H/gJz6C3Ug
GO 

TAG: 数据库

 

评分:0

我来说两句

日历

« 2024-03-28  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 40900
  • 日志数: 65
  • 图片数: 1
  • 文件数: 2
  • 书签数: 13
  • 建立时间: 2006-12-27
  • 更新时间: 2008-05-31

RSS订阅

Open Toolbar