Sql-Server
VarChar 到 NVarChar 導致截斷錯誤
我正在從一個臨時表中導入一些數據,該表的列定義為
VARCHAR(150)
. 目標表列定義為NVARCHAR(200)
。我正在使用一條INSERT INTO
語句,但是當我執行註釋掉該列的 SQL 語句時,查詢執行正確。當我取消註釋這一行時,我得到:消息 8152,第 16 級,狀態 4,第 26 行
字元串或二進制數據將被截斷。
該語句已終止。
關於為什麼會發生這種情況的任何想法?
INSERT INTO table (col1, col2) SELECT column1 ,column2 FROM tmpTable
col1
被定義為NVARCHAR(200)
並且col2
是DateTime
。column1
被定義為VARCHAR(150)
並且column2
是DateTime
。當我註釋掉
column1
並且col1
導入語句執行良好時。
那麼這不會發生,除非
- 觸發器正在目標表上觸發,並且錯誤發生在那裡
- INSERT 做了一些處理,添加了足夠的數據使其太寬
另外,請問這個怎麼回事?除非有一些處理,否則這不會失敗。
INSERT INTO table (col1, col2) SELECT LEFT(column1, 200) ,column2 FROM tmpTable