小编Alb*_*ert的帖子

使用具有大量id列表的IN子句更新表的问题

嗨我在尝试使用IN子句更新表时遇到问题,我有一个很大的客户端列表,应该更新4500+.

Update table 
set columnA = 'value'
where ID in ( biglistofids )  //biglistofids > 4500 ids
Run Code Online (Sandbox Code Playgroud)

我收到此错误"字符串或二进制数据将被截断."

我用相同的脚本尝试了更少的ids(2000)并且它运行良好.

我也试过使用临时表,但我得到了同样的错误.

  1. SELECT Id INTO tmpTable FROM dbo.table WHERE id IN (biglistofids) //create temporal table succesfully
  2. Update table set columnA = 'value' FROM table INNER JOIN tmpTable ON table.ID = tmpTable.ID

有没有办法处理这个,而不重复每2000条记录的代码?

提前致谢

sql t-sql sql-server sql-server-2005 in-clause

1
推荐指数
1
解决办法
588
查看次数

标签 统计

in-clause ×1

sql ×1

sql-server ×1

sql-server-2005 ×1

t-sql ×1