字符串或二进制数据将被截断。该语句已终止。 System.Data.SqlClient.SqlException(0x80131904)

时间:2016-07-01 06:03:28

标签: sql-server asp.net-mvc entity-framework

  

字符串或二进制数据将被截断。该语句已终止。

     

System.Data.SqlClient.SqlException(0x80131904):字符串或二进制数据将被截断

2 个答案:

答案 0 :(得分:3)

当C#(模型)尝试为SQL SERVER数据库表中大小定义较小的列保存数据记录时,抛出此异常,其中值传递给此列的字符串长度更大。

要修复此错误,您只需使用SQL Server脚本更改SQL SERVER数据库中的表列。

只增加表格中列的大小。无需在PROD / TEST环境中重新部署应用程序。

答案 1 :(得分:1)

请参阅下面的示例。

CREATE TABLE MyTable(Num INT, Column1 VARCHAR(3))

INSERT INTO MyTable VALUES (1, 'test')

查看column1,其大小为3,但给定值的长度为4,因此您将收到错误。

修复错误:

你应该传递小于或等于它大小的字符串值,即,如下所示的3个字符。

INSERT INTO MyTable VALUES (1, 'tes')

如果要抑制此错误

您可以使用以下ansi_warnings参数设置关闭

SET ansi_warnings OFF

如果我们将ansi_warnings用作OFF,那么错误将被抑制,并且将插入列中的任何内容,其余内容将被截断。

INSERT INTO MyTable VALUES (1, 'test') 

字符串' tes'将存储在您的表中,它不会返回任何错误。