【发布时间】:2014-02-14 07:01:30
【问题描述】:
我有一个简单的 while 循环,在循环中我声明了一个带有一列的 DECLARE @TABLE,它的数据类型是 id。虽然循环循环记录我只是将值插入到表变量中。每当循环循环它时,Declare @TABLE 应该被重新创建并且旧值不应该存在。但它没有发生。下面是代码
Declare @V int
Set @V = 1
While (@V <= 3)
begin
DECLARE @Changes table
(
Id int
)
Insert into @Changes
Values (@V)
select * from @Changes
SET @V=@V+1
END
在正常情况下,我们应该得到输出
1
2
3
但我得到的输出是
1
1
2
1
2
3
这是错的。
这是正常行为还是 SQL 中的错误
【问题讨论】:
-
在循环外声明,在循环开头截断。
标签: sql while-loop