写作时
DECLARE @x INT
有没有办法检查变量@x是否已经被声明?
答案 0 :(得分:15)
没有。
tsql中的变量声明不遵循代码路径,并且可能像其他语言一样使用范围。
此代码显示@xx
存在但未分配,即使声明从未执行过。
if 1 = 0
begin
declare @xx int = 10
end
else
begin
declare @yy int = 20
end
print coalesce(@xx, -100)
print coalesce(@yy, -200)
结果
-100
20
答案 1 :(得分:0)
如果您尝试访问尚未定义的变量,T-SQL脚本将向您发出错误,告知您未定义变量。
Msg 137,Level 15,State 2,Line 5 必须声明标量变量“@x”。