2

我需要将数据复制到具有标识列的 MSSQLServer 2005 数据库表中。

我已经看到如何通过执行禁用标识列

SET IDENTITY_INSERT <table> ON

在插入查询之前。

当我使用 PreparedStatements 进行批量插入并且在操作期间无法更改语句时,我该怎么做?

4

3 回答 3

4

@Brabster 晚了几年,但它可能对任何需要做类似事情的人有用。您可以在传递给的字符串中设置identity_insert onoff连接语句prepareStatement()

myStatement.prepareStatement("SET IDENTITY_INSERT MY_TABLE ON;INSERT INTO MY_TABLE ...;SET IDENTITY_INSERT MY_TABLE OFF");
于 2014-11-21T17:25:35.693 回答
2

哦。容易,想通了,我想。

首先创建一个Statement,执行SET IDENTITY_INSERT ON。关闭声明。

创建 PreparedStatement,做批处理,关闭preparedStatement。

创建一个Statement,执行SET IDENTITY_INSERT OFF。关闭并整理。

欢迎对此问题进行任何改进或建议...

于 2009-06-15T12:27:45.850 回答
2

您可以将SET IDENTITY_INSERT ON/OFF其作为准备好的语句的一部分。这样,您只从客户端的角度执行一个命令。

于 2009-06-15T12:45:43.577 回答