我們用列B中的確切值更新列A.列B的長度爲255,列A的長度爲4.列B中的數據已通過LEN(REVERSE(colB) )是唯一4.當我們試圖更新錯誤消息說:數據應該適合的截斷警告
'String or binary data would be truncated.'
這裏是查詢:
update table
set columnA=columnB
where Column B in ('ABC','ABCD','AB')
我們也驗證了這個工程:
update table
set columnA=left(columnB,4)
where Column B in ('ABC','ABCD','AB')
有什麼猜測可能是錯的? 感謝
這很明顯..用'columnA = columnB'你試圖將columnb值完全設置爲columna,這就是錯誤的原因。您的第二個查詢通過僅剪切4個字符來執行正確的操作。順便說一句,你的'WHERE'條件永遠不會是真的,因爲'columnB'將不符合那些提供的值。 – Rahul 2014-10-10 16:31:43
您是否嘗試將列B投影爲varchar(4)? – 2014-10-10 16:32:07
第二個查詢(LEFT(4))是否也提供錯誤消息? – Ruslan 2014-10-10 16:33:13