SQL While循环不增加变量

时间:2019-10-15 11:56:50

标签: sql-server tsql while-loop

我目前正在尝试用一些值填充表格(BIV)。我想要实现的是以下内容:

ID    OldState    NewState
 0           0           0
 1           0           0
 2           0           0 
 3           0           0
 ...
511          0           0

我想用0 ... 511之间的值手动填充一行。

我认为这很容易做到:

DELETE FROM BIV

DECLARE @id as int
SET @id = 0;

WHILE @id < 512
BEGIN
    INSERT INTO BIV (Id, OldState, NewState) VALUES (@id, 0 ,0);
    SET @id = @id + 1;
END;

但是,我最终得到以下内容

ID    OldState    NewState
 0           0           0
 1           0           0
 1           0           0 
 1           0           0
...          0           0
 1           0           0
(512 rows in total)

在我看来,@id并没有按照我想要的方式递增(但它会递增一次)。看起来@id的值在两次迭代之间没有保留。

那么,我想念什么?我不介意表演,这是一项一次性的任务。

1 个答案:

答案 0 :(得分:1)

我发现了问题。这有点令人尴尬,但是显然在创建表时,我使用Id列而不是int类型位创建了它。