使用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
答案 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列,您可能无法改变它。