嗨我有一个问题,当试图更新一个表使用IN子句,我有一个应该更新的客户端的大列表4500+。问题更新表使用IN子句与ids的巨大列表
Update table
set columnA = 'value'
where ID in (biglistofids) //biglistofids > 4500 ids
我收到此错误 “字符串或二进制数据将被截断。”
我试着用更少的ids让同样的脚本(2000),它工作正常。
我也试过使用时态表,但我得到了同样的错误。
SELECT Id INTO tmpTable FROM dbo.table WHERE id IN (biglistofids) //create temporal table succesfully
Update table set columnA = 'value' FROM table INNER JOIN tmpTable ON table.ID = tmpTable.ID
有什么办法来处理这个问题,不重复的代码为每2000条记录?
在此先感谢
+1:我在SQL Server 2005上重现了错误,试图将“abcdef”放入NVARCHAR(5)列。 – 2010-08-04 17:48:17
+1同意该消息与IN子句的大小无关 – Andomar 2010-08-04 17:48:39
这正是发生的情况,谢谢。 – Albert 2010-08-04 17:55:20