【发布时间】:2014-01-29 14:32:01
【问题描述】:
让我描述一下问题:
- 我有一个表
T,其中有一列C,类型为NVARCHAR(100)。 - 我有一个将数据插入
T的存储过程。它有参数@c nvarchar(100) NOT NULL。 - 当我使用长度 > 100 的字符串参数从数据访问层调用此存储过程时,它会静默截断数据并且不会发生数据库错误。我想改用“字符串或二进制数据将被截断 SQL 错误”。
我尝试使用明确的 ADO.NET 方法(使用 command.Parameters.Add(...) 或 command.Parameters.AddWithValue(...),甚至尝试指定 SqlParameter.Size = 100)和使用 EntLib 方法调用存储过程 - 结果相同。
如果我在存储过程中设置更大的参数大小,那么它会被传递到存储过程并发生数据库错误。将存储过程参数设置为@c nvarchar(MAX)是不是一个好办法?
【问题讨论】:
标签: sql-server stored-procedures ado.net