在IF中如果我们定义一个变量的话他的作用直到IF结束为止,IF外是不识别这个变量,else都不能使用
IF(true)
{
int32 i =1;
Console.WriteLine(I);
}
这种情况要是在SQL里就要使用DECLARE了
BEGIN
DECLARE @test VARCHAR;
如果要使用默认值:
DECLARE @test VARCHAR(5) DEFAULT 'a';
进行赋值:
DECLARE Var1 INTEGER DEFAULT 0;
SET var1 = 0 ;
定义的局部变量的作用域是其被声明时所在的批处理:
BEGIN
DECLARE @test VARCHAR
SET @test = '1'
PRINT 'in if :' +@test
END
PRINT 'out if :' + @test
正常:in if: 1, out if: 1;
SQL中是通过GO语句来区分批处理的:
BEGIN
DECLARE @test VARCHAR
SET @test = '1'
PRINT 'in if :' +@test
END
GO
PRINT 'out if: '+@test
错误:此时将无法访问变量