IF 1=1 BEGIN DECLARE @test VARCHAR SET @test='1' PRINT 'in if:'+@test END GO PRINT 'out if:'+@test IF 1=1 BEGIN DECLARE @test VARCHAR SET @test='1' PRINT 'in if:'+@test END PRINT 'out if:'+@test
进行比较之后,可知
declare变量的作用域是所在的批处理,if阻断不了它的作用域,那上面我们的代码if内外的代码都在一个批处理中,所以@test都是可用的且if里面设置的值还在。
GO就是用于一个sql语句的结束