如何使用while循环更新sql表

时间:2012-07-29 09:45:24

标签: sql

使用while循环更新我的sql表,在我的表中记录“id”的顺序是27,28,29,30到45.我试图将这个“id”更新为2,3,4,5 upto 16我使用了这个循环但是只得到了错误

DECLARE @a INT 
DECLARE @b INT
SET @a = 2
SET @b = 27
WHILE @b < 42
BEGIN
exec sp_executesql 'UPDATE Cpart2_TEST_2 SET id = @a where id = @b   

SET @a = @a + 1
SET @b = @b + 1
END

这是错误消息

  

1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法   在'DECLARE @a INT

附近使用
DECLARE @b INT
SET @a = 2
SET @b = 27
WHILE @b < 42
BEGIN
' at line 1 

1 个答案:

答案 0 :(得分:0)

将您的执行行更改为:

exec sp_executesql 'UPDATE Cpart2_TEST_2 SET id = ' + CAST(@a AS nvarchar(3)) + ' where id = + ' CAST(@b AS nvarchar(3))

我没有解析这个,所以它可能有语法错误。但要做到这一点,你应该做得很好。

要考虑的一件事......如果'id'是IDENTITY列,您可能无法改变它。