SQLException:字符串或二进制数据将被截断

58 c# sql sql-server

我有一个C#代码,批量处理很多插入语句.在执行这些语句时,我得到"字符串或二进制数据将被截断"错误和事务roledback.

要找出导致这种情况的insert语句,我需要在SQLServer中逐个插入,直到我遇到错误.

有没有聪明的方法来查找哪个语句和哪个字段使用异常处理导致此问题?(SQLEXCEPTION)

Ada*_*son 76

通常,没有办法确定哪个特定语句导致错误.如果您正在运行多个,您可以观看分析器并查看最后完成的语句,看看之后的语句可能是什么,但我不知道这种方法是否适合您.

在任何情况下,您的一个参数变量(及其中的数据)对于它试图存储数据的字段而言太大.根据列大小检查参数大小,并且相关字段应该很快就会明显.

  • 这些信息对我很有用.为此+1. (3认同)

小智 21

当SQL Server列的数据类型的长度小于输入到条目表单中的数据的长度时,会发生此类错误.


jai*_*eep 8

当你必须放置比在Database表中指定的字符或值更多的字符或值时,通常会发生这种类型的错误:你指定了transaction_status varchar(10),但实际上你试图存储包含19个字符的_transaction_status.这就是你在这段代码中遇到这种错误的原因


ism*_*aig 5

通常是您插入的值大于允许的最大值。例如,数据列最多只能容纳 200 个字符,但您插入的是 201 个字符的字符串