Nei*_*ght 0 sql-server sql-server-2008-r2 truncate
我正在从一个临时表中导入一些数据,该表有一列定义为VARCHAR(150)
. 目标表列定义为NVARCHAR(200)
. 我正在使用一个INSERT INTO
语句,但是当我运行 SQL 语句注释掉此列时,查询运行正确。当我取消注释这一行时,我得到:
Msg 8152, Level 16, State 4, Line 26
字符串或二进制数据将被截断。
该语句已终止。
关于为什么会发生这种情况的任何想法?
INSERT INTO table (col1, col2)
SELECT column1
,column2
FROM tmpTable
Run Code Online (Sandbox Code Playgroud)
col1
被定义为NVARCHAR(200)
并且col2
是DateTime
。
column1
被定义为VARCHAR(150)
并且column2
是DateTime
。
当我注释掉column1
并且col1
导入语句运行正常时。
那么这不会发生,除非
另外,请问这是怎么回事?除非有一些处理,否则这不会失败。
INSERT INTO table (col1, col2)
SELECT LEFT(column1, 200)
,column2
FROM tmpTable
Run Code Online (Sandbox Code Playgroud)