0

我正在使用 VS 2008 和 SQL-Server 2005 开发一个项目。我使用varchar(150)-field 来保存一个普通的字符串,它必须保存

  1. 电子版
  2. 硬拷贝
  3. 两者(软拷贝和硬拷贝)

它在保存为软拷贝或硬拷贝时有效,但对于两者(软拷贝和硬拷贝),它都会引发以下错误:

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

当我在发生此错误后重新启动应用程序时,一切正常。

我尝试使用Nvarchar(Max)相同的字段,但错误都是一样的。

请给我建议以避免此错误。

4

4 回答 4

1

该错误表示您正在更新比它可以容纳的更大尺寸的列。检查列值中的空格

于 2013-02-05T12:04:43.500 回答
0

当您的数据类型、大小与数据库字段属性不匹配时,会发生此异常。

这可能是因为您的列长度小于插入数据。

因此,如果您将列长度增加到可以占用您输入的数据的长度,那么问题将得到解决。

如果您使用Nvarchar(Unicode 字符数据)数据类型,则需要将数据插入N'为前缀,如下所示:

Set @var = N'Hello World'
于 2013-02-05T12:05:18.923 回答
0

string or binary data would be truncate. The statement has been terminated超出大小时会出现错误。尝试从 更新您的尺寸varchar(150) to varchar(500)

或者检查您的查询或存储过程中的数据长度,您将在其中为保存在 db 中的文件分配值(参考:当您将其更改为nvarchar(max)但它不起作用时)。

于 2013-02-05T12:05:34.137 回答
0

如果您尝试将太多数据插入到大小有限的字段中,则会发生这种情况,在您的情况下为 150。

于 2013-02-05T12:05:57.533 回答