日期:2014-05-18  浏览次数:20871 次

关于t-sql中使用【go】有什么副作用吗?
前段发个贴子,就是sql server 2008的折叠代码可以用go来做,在这里我想问一下:
1、go到底有什么用?(注释、还是结束)
2、是不是可以随便用?(有没有后果或副作用)
看在我结贴率100%的份上,谢谢了,


------解决方案--------------------
go是批处理结束的标识信号。

使用中需要注意,批处理的结束标志。
参考微软的例子。http://msdn.microsoft.com/zh-cn/library/ms188037.aspx
SQL code
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

------解决方案--------------------
GO 代表一个批的结束。
------解决方案--------------------
SQL code


GO是批处理的结束标志,当编译器执行到GO时会把GO前面的所有语句当成一个批处理来执行。
GO不是Transact-SQL语句,而是可被SQL Server查询分析器识别的命令。
GO命令和Transact-SQL语句不可以处在同一行上。但在GO命令行中可以包含注释。
在批处理的地一条语句后执行任何存储过程必须包含EXECUTE关键字,局部变量的作
用域限制在一个批处理中,不可以再GO命令后引用

RETURN 可在任何时候从批处理中退出,而不执行位于return之后的语句

例子:
USE Sales
GO
--批处理结束标志
CREATE VIEW  employee_info
AS
SELECT * FROM employ
GO
SELECT * FROM employee_info
GO