0

我正在尝试将大于 5500 个字符的字符串值插入到 MSSQL 2008 数据库中。我得到错误

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

当我尝试插入这些值时,即使列的数据类型声明为 nvarchar(max)。我可以输入的字符串大小是否有上限?如果是这样,解决这个问题的方法是什么?

编辑

当我通过 mgmt studio 手动输入数据时,它可以工作。但是,我正在通过 JDBC 驱动程序和准备好的语句执行更新。

我的查询形式为:

UPDATE table SET columnX = value1 WHERE columnX = value2;
  • 我将此语句添加到批处理中,每 1000 条语句执行一次。
  • 在这种情况下, value1 包含大量字符。
  • columnX 明确定义为 nvarchar(max)
4

1 回答 1

0

Microsoft 鼓励我们使用 SQLServerPreparedStatement 来修改像 varchar(max) 这样的大值类型。 http://msdn.microsoft.com/en-us/library/ms378813.aspx

当我在 JDBC/Pentaho 遇到类似问题时,您也可以使用存储过程来解决问题,这就是我所做的。

您可以在完成任务的 sql-server 上编写存储过程。只需从您的 Java 代码中调用该存储过程。

我希望这会有所帮助!

于 2012-01-31T12:05:58.360 回答