我正在使用 VS 2008 和 SQL-Server 2005 开发一个项目。我使用varchar(150)
-field 来保存一个普通的字符串,它必须保存
- 电子版
- 硬拷贝
- 两者(软拷贝和硬拷贝)
它在保存为软拷贝或硬拷贝时有效,但对于两者(软拷贝和硬拷贝),它都会引发以下错误:
字符串或二进制数据将被截断。该语句已终止。
当我在发生此错误后重新启动应用程序时,一切正常。
我尝试使用Nvarchar(Max)
相同的字段,但错误都是一样的。
请给我建议以避免此错误。
我正在使用 VS 2008 和 SQL-Server 2005 开发一个项目。我使用varchar(150)
-field 来保存一个普通的字符串,它必须保存
它在保存为软拷贝或硬拷贝时有效,但对于两者(软拷贝和硬拷贝),它都会引发以下错误:
字符串或二进制数据将被截断。该语句已终止。
当我在发生此错误后重新启动应用程序时,一切正常。
我尝试使用Nvarchar(Max)
相同的字段,但错误都是一样的。
请给我建议以避免此错误。
该错误表示您正在更新比它可以容纳的更大尺寸的列。检查列值中的空格
当您的数据类型、大小与数据库字段属性不匹配时,会发生此异常。
这可能是因为您的列长度小于插入数据。
因此,如果您将列长度增加到可以占用您输入的数据的长度,那么问题将得到解决。
如果您使用Nvarchar
(Unicode 字符数据)数据类型,则需要将数据插入N'
为前缀,如下所示:
Set @var = N'Hello World'
string or binary data would be truncate. The statement has been terminated
超出大小时会出现错误。尝试从 更新您的尺寸varchar(150) to varchar(500)
。
或者检查您的查询或存储过程中的数据长度,您将在其中为保存在 db 中的文件分配值(参考:当您将其更改为nvarchar(max)
但它不起作用时)。
如果您尝试将太多数据插入到大小有限的字段中,则会发生这种情况,在您的情况下为 150。