【发布时间】:2013-03-26 11:00:57
【问题描述】:
我有一个 SQL Server 2008 表,其中一个字段声明为 VARBINARY (8000)
一个存储过程用来写这个表,它的参数是VARBINARY(8000)
C#代码调用存储过程,传入一个byte[]作为这个参数。
在某些情况下会因为字段太大而引发 SQL 异常。
这似乎是一个简单的问题,但到目前为止我一直找不到答案
我的 byte[] 多大才能不溢出 SQL 字段?
【问题讨论】:
-
你能发布一些代码吗?
-
如果该字段被声明为
VARBINARY(8000),那么显而易见的答案是“它可以是 8000 字节或更少”——你看到了什么不同的东西吗? -
是的,我看到失败的一个例子是接收长度为 3262 的字节 [] 并引发异常
-
@JDibble 应该可以正常工作;我认为我们需要在这里看到一些东西 - 最特别的是 EXACT 错误消息,以及它是来自 sql-server 还是来自 .net 的指示;以及一些操纵它的代码。例如,是否有可能某些代码(如触发器或索引)正在使用它?
-
首先,这是我支持的代码,而不是我编写的代码。我假设 8000 字节是限制,但实际上情况似乎并非如此 Exception is System.Data.SqlClient.SqlException: String or binary data will be truncated.
标签: c# sql-server sql-server-2008