sql server go语句
sql server go语句SQL Server中go语句会将go之前的语句作为一个批处理执行,为了区分多个批处理而设的分隔符,代表一个批处理的结束。
一、SQL Server中go语句的用法
Select 1 Select 2 Select 3 GO --这是一个批处理 Select 1 GO --这是一个批处理 Select 2 GO --这是一个批处理
二、SQL Server中go语句使用注意事项
1、GO 命令和 Transact-SQL 语句不能在同一行中.但在 GO 命令行中可包含注释
Select 1
GO
--会正确输出结果,列名为”无列名”
Select 1 GO
--会正确输出结果,列名为”GO”
--由此可知此处的GO并未起到应有的作用;
2、用户必须遵照使用批处理的规则.例如,在同一批处理中,创建数据库之后不能直接使用其新建的数据库
create database [Roc]
use [Roc]
GO
--运行此批处理后,系统会报错
--把此批处理分成两个批即可正确运行
create database [Roc]
GO
use [Roc]
GO
3、局部(用户定义)变量的作用域限制在一个批处理中,不可在 GO 命令后引用
declare @Roc varchar(max)
Select @Roc = 'aking'
GO
print @Roc
GO
--此为两个批处理,由于局部变量的作用域要限制在一个批处理中,所以此语句错误
--把这两个批合并为一个批即可正确运行
declare @Roc varchar(max)
Select @Roc = 'aking'
print @Roc
GO
4、每个被GO分隔的语句都是一个单独的事务,一个语句执行失败不会影响其它语句执行
select * from sysobjects where id=a
select getdate()
--你会发现会报错,并且不会显示任何结果集
select * from sysobjects where id=a
go
select getdate()
go
--你会发现尽管同样会报错,但结果集中包含select getdate()的结果。
5、GO [count] count 为正整数.指定GO 之前的批处理执行指定的次数
insert [Roc] Select 'aking'
GO
--批处理执行1次,向表Roc中插入一行记录
aking Insert [Roc] Select 'aking'
GO 10
--批处理执行10次,向表Roc中插入10行记录aking