如果我执行以下操作:
IF @THING = TRUE BEGIN
DECLARE @BIGTHING AS BIGINT
END
Run Code Online (Sandbox Code Playgroud)
SQL Server会为此分配资源@BIGTHING吗?
或者更好的问题:SQL Server是否解析存储过程并在执行之前分配所有声明的变量?
它必须如此
IF 1=2 BEGIN
DECLARE @BIGTHING AS BIGINT=0
END
select @BIGTHING
Run Code Online (Sandbox Code Playgroud)
使用Microsoft SQL Server 2008 R2对我运行没有问题.有趣的是,如果变量默认为如上所示的值,则只在IF条件为真时才设置该值.
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |