mssql sql server 局部变量作用区域分享


摘要:
下文将分享sql server局部变量的作用域

 --局部变量必须先定义后使用
declare @a varchar(10)
set @a ='test'
print @a 

----print @b  如果此时未定义此变量,输出变量,则会返回 消息 137,级别 15,状态 2,第 6 行 必须声明标量变量 "@b"。 

declare @i int =1
while @i < 10
begin
  declare @b varchar(100)   ---定义变量后,在go关键字或当前会话结束前,变量都处于可用状态
  set @b ='test2'
  print @b 
  set @i =@i+1 
end

print @b 
go  ---代码作用域结束标志,采用go 关键字,代码块结束
 
----print @b  如果此时未定义此变量,输出变量,则会返回 消息 137,级别 15,状态 2,第 6 行 必须声明标量变量 "@b"。 

 


在sql脚本中,当变量申明后,这个变量从开始申明的地方,直到脚本执行完毕(go关键字也作为结束脚本的标志),都可用。