Alb*_*ert 1 sql t-sql sql-server sql-server-2005 in-clause
嗨我在尝试使用IN子句更新表时遇到问题,我有一个很大的客户端列表,应该更新4500+.
Update table
set columnA = 'value'
where ID in ( biglistofids ) //biglistofids > 4500 ids
Run Code Online (Sandbox Code Playgroud)
我收到此错误"字符串或二进制数据将被截断."
我用相同的脚本尝试了更少的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条记录的代码?
提前致谢
这"String or binary data would be truncated."
与IN
条款无关.
这意味着在这一行:
set columnA = 'value'
Run Code Online (Sandbox Code Playgroud)
你设置columnA
的东西太长了,无法容纳columnA
.
也许某些人id
的相应数据太长了,而且这些数据并不是你试过的第一个2000.
归档时间: |
|
查看次数: |
588 次 |
最近记录: |