0

我正在使用 while 循环更新我的 sql 表,在我的表记录中,“id”的顺序是 27、28、29、30 到 45。我正在尝试将这个“id”更新为 2、3、4、5 到 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 
4

1 回答 1

0

将您的执行行更改为:

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

我没有解析这个,所以它可能有语法错误。但是让它发挥作用,你应该会很好。

需要考虑的一件事...如果“id”是 IDENTITY 列,您可能无法更改它。

于 2012-07-29T09:52:32.497 回答