0
假设我有一个表如下:BATCHUPDATE上标识列
CREATE TABLE [dbo].[ProposalDetails](
[ProposalId] Numeric(15,0) IDENTITY(1,1) NOT NULL,
[ProjectProposalId] Numeric(15,0) NOT NULL,
[projectId] Numeric(15,0) NOT NULL,
CONSTRAINT [ProposalDetails$ProposalId] PRIMARY KEY CLUSTERED
)
试图插入多个记录作为批次以下面的方式 - (对标识列没有插入):
String sql = "INSERT INTO ProposalDetails"
+ "(ProjectProposalId,projectId) VALUES"
+ "(?,?)";
preparedStatement= conn.prepareStatement(sql);
conn.setAutoCommit(false);//commit trasaction manually
for(int i = 0; i < arr.length(); i++){
preparedStatement.setInt(1,...);
preparedStatement.setString(2,...);
preparedStatement.addBatch();
}
preparedStatement.executeBatch();
conn.commit();
这导致以下异常:
a.sql.BatchUpdateException:违反PRIMARY KEY约束'...'。无法在对象'dbo.ProposalDetails'中插入重复键。重复的键值是(1)。
batchupdate不适用于IDENTITY列吗?
我在SqlServer 2008上。