--
--2.7.1节示例
--
--GO命令
USE AdventureWorks;
GO
SELECT *
FROM Person.AddressType
GO SELECT * --此处报错
FROM Person.ContactType
--GO与局部变量
USE AdventureWorks;
GO
DECLARE @MyMsg VARCHAR(50)
SELECT @MyMsg = 'Hello, World.'
GO -- 批处理结束@MyMsg的作用域也结束
PRINT @MyMsg --此处报错
GO
--批处理中的异常
CREATE TABLE dbo.t3(a int)
INSERT INTO dbo.t3 VALUES (1) --此行正确执行
INSERT INTO dbo.t3 VALUES (1,1) --此行报错,该行及下一行不会被执行
INSERT INTO dbo.t3 VALUES (3)
GO
SELECT * FROM dbo.t3 --返回1行结果
--
--2.7.2节示例
--
--语句块中的变量
DECLARE @id int
SET @id=1 --读者可以将值改为2再运行一下
IF(@id=1)
BEGIN
DECLARE @str varchar(10) --在语句块中定义变量
SET @str='abc'
END
SELECT '['+@str+']' --在语句块外使用该变量
--
--2.7.3节示例
--
--简单CASE使用
SELECT * ,
CASE AddressTypeID
WHEN 2 THEN 'Home'
WHEN 3 THEN 'Office'
ELSE 'Other Address'
END AS Address
FROM Sales.CustomerAddress
--CASE搜索函数使用
SELECT * ,
CASE WHEN AddressTypeID=2 THEN 'Home'
WHEN AddressTypeID=3 THEN 'Office'
ELSE 'Other Address' END AS Address
FROM Sales.CustomerAddress
--
--2.7.4节示例
--
--使用WHILE循环输出0到9
DECLARE @id int
SET @id=0
WHILE (@id<10)
BEGIN
PRINT @id
SET @id=@id+1
END
--使用GOTO语句输出0到9
DECLARE @id int
SET @id=0
lb:--标记
PRINT @id
SET @id=@id+1
IF (@id<10)
GOTO lb –跳转到标记lb