在 SSMS 2012 中,设置后Options > Query Execution > ANSI > SET IMPLICIT_TRANSACTIONS
,请参阅此 SO 帖子
我在查询窗口中有以下代码:
begin transaction
select @@TRANCOUNT
begin
declare @someNumber int; set @someNumber = 1;
print @someNumber;
end
rollback
当我选择整个块并按Execute
时,我看到了预期的结果,即 1。
但是,当我选择前 4 行并执行时,然后选择第 5 行,即print @someNumber;
,我收到以下消息:
Msg 137, Level 15, State 2, Line 1
必须声明标量变量“@someNumber”。
变量的范围究竟是什么?
我很困惑。有人可以阐明或指出我正确的方向吗?