GO:向 SQL Server 实用工具发出一批 Transact-SQL 语句结束的信号
1、批处理
USE TESTGOIF OBJECT_ID('T1') IS NOT NULL DROP TABLE T1; CREATE TABLE T1(ID INT IDENTITY(1,1) PRIMARY KEY,TT VARCHAR(10))DECLARE @VV VARCHAR(10)SET @VV = N'测试1'insert into T1(TT) values(@VV)GOSET @VV = N'测试2'insert into T1(TT) values(@VV)
这个时候会有报错,提示我们有变量没有定义:
(1 行受影响)消息 137,级别 15,状态 1,第 1 行必须声明标量变量 "@VV"。消息 137,级别 15,状态 2,第 2 行必须声明标量变量 "@VV"。
但其实我们已经定义了的,为什么还会有这个错误呢?因为GO把上面的语句已经结束,下面是另外的一个语句的开始。
我们可以尝试把GO注释掉,如下面所示:
USE TESTGOIF OBJECT_ID('T1') IS NOT NULL DROP TABLE T1; CREATE TABLE T1(ID INT IDENTITY(1,1) PRIMARY KEY,TT VARCHAR(10))DECLARE @VV VARCHAR(10)SET @VV = N'测试1'insert into T1(TT) values(@VV)--GOSET @VV = N'测试2'insert into T1(TT) values(@VV)
这个很显示的不会报错,并且有查询结果:
2、对数据进行循环插入操作
insert into T1(TT) values(200)GO 100
则会对t1列插入200的数据操作100次。
数据库环境 :SQL SERVER 2008