TSQL插入错误 - 字符串或二进制数据将被截断

时间:2015-02-21 21:08:07

标签: sql sql-server-2012

set identity_insert tblindividual ON

insert into tblIndividual (nametitle, individ, lastname, firstname, occupation, employer, active, editor, creationdate)
   select 
       salutation, idnumber, last_name, first_name, occupation, 
       employer, 1, recstatus, GETDATE()
   from 
       i_master 
   where 
       cc_rectype = '1' 

set identity_insert tblindividual OFF

收到错误:

  

Msg 8152,Level 16,State 2,Line 2
  字符串或二进制数据将被截断。   声明已经终止。

1 个答案:

答案 0 :(得分:4)

您收到该错误,因为您尝试插入数据的其中一个列接收的数据太大而且必须被截断(缩短)。

例如,如果您的nametitle字段属于varchar(50)数据类型,但您的salutation数据类型为varchar(100),则可能存在不适合的值截断。

如果您愿意将较长的数据缩减到适当大小,可以关闭警告以允许插入继续使用语句:

SET ANSI_WARNINGS  OFF;
-- Your insert TSQL here.
SET ANSI_WARNINGS ON;

如上所述,请务必记住之后再次打开警告。我希望这会有所帮助。