Sql 无法将数据插入数据库字符串或二进制数据将被截断

Sql 无法将数据插入数据库字符串或二进制数据将被截断,sql,sql-server-2008,insert,Sql,Sql Server 2008,Insert,Msg 8152第16级第4状态第1行 字符串或二进制数据将被截断。 声明已终止。 注意:我的表有一个空格[UserLevel],因为它是以前用这种方式创建的这是由于试图将太多数据放入列中造成的 问题是,对于模式图片中指示的列,示例中指定的值都不会太大。因此,我假设您给我们的值不是真值,或者您在该表上有一个触发器,这实际上是导致错误的原因 另外,您的Delete_-Flag和Deactivate_-Flag列不应该是数据类型位,而不是char(1) 编辑: 哦,还有一件事-由于客户机ID是一个

Msg 8152第16级第4状态第1行 字符串或二进制数据将被截断。 声明已终止。


注意:我的表有一个空格[UserLevel],因为它是以前用这种方式创建的

这是由于试图将太多数据放入列中造成的

问题是,对于模式图片中指示的列,示例中指定的值都不会太大。因此,我假设您给我们的值不是真值,或者您在该表上有一个触发器,这实际上是导致错误的原因

另外,您的
Delete_-Flag
Deactivate_-Flag
列不应该是数据类型位,而不是
char(1)

编辑:

哦,还有一件事-由于
客户机ID
是一个nvarchar,您可能希望在其中存储unicode数据。要在脚本中指出这一点,应在字符串上使用“N”前缀,如下所示:

 INSERT INTO [CVSUAT].[dbo].[UserLevel ]( 
  [Client_ID]
  ,[User_Level_Name]
  ,[User_Level_Description]
  ,[Created_by]
  ,[Created_Date]
  ,[Modified_by]
  ,[Modified_Date]
  ,[Delete_Flag]
  ,[Deactivate_Flag]) VALUES ('sndbsndbsdnbsndbsnbdnsbdn23','Client','','Client','2013-03-12 21:31:38.437','Client','2013-03-12 21:31:38.437','0','0')

摆脱那该死的尾随空间!那太可笑了。谈谈技术债务!
User\u Level\u ID
是标识列吗?还有一个旁注,
Delete Flag
Deactivate_Flag
听起来应该是
BIT
列。由于所有列都可以为空(PK除外),为什么要在其中一些列中输入空字符串以表示未知值?你完全可以不插入它们,而将它们保留为空。赌什么,那后面的空格在5年后仍然存在…@MitchWheat你认为公司会持续那么久;-)
INSERT INTO [CVSUAT].[dbo].[UserLevel ]( 
  [Client_ID]
  ,[User_Level_Name]
  ,[User_Level_Description]
  ,[Created_by]
  ,[Created_Date]
  ,[Modified_by]
  ,[Modified_Date]
  ,[Delete_Flag]
  ,[Deactivate_Flag]) VALUES (N'sndbsndbsdnbsndbsnbdnsbdn23','Client','','Client','2013-03-12 21:31:38.437','Client','2013-03-12 21:31:38.437','0','0')