【发布时间】:2017-05-29 01:07:31
【问题描述】:
如何插入非自增主键?
如您所见,选择至少有 100 行,并且对于每次插入,我都需要获取最新的递增 ID。我不能使用SCOPE_IDENTITY,也不能修改数据库结构。
当前出现错误
违反主键约束“PK_DOCUMENT”。无法在对象“dbo.DOCUMENTS”中插入重复键
代码:
INSERT INTO [dbo].[DOCUMENTS]
(DOCUMENT_ID, DOCUMENT_TYPE, DOCUMENT_REF, DOCUMENT_NOTE,
DOCUMENT_DATE, LAST_UPDATE_ID, LAST_UPDATE_DATE,
DOCUMENT_FUNCTION_CODE, BATCH_ID, AUDIT_XML, AUDIT_USER, REMINDER_DATE)
SELECT TOP 100
(SELECT MAX(DOCUMENT_ID) + 1 FROM dbo.DOCUMENTS),
NULL, NULL,
'MIGRATED FROM BRING UP NOTES ' + CAST(GETDATE() AS VARCHAR(20)) + ' ' + sr.BRINGUP_NOTES,
GETDATE(), NULL, NULL,
NULL, NULL, NULL, NULL, sr.BRINGUP_DATE
FROM
[dbo].[SERVICE_REQUESTS] sr
WHERE
BRINGUP_NOTES IS NOT NULL
ORDER BY
SERVICE_REQUEST_ID DESC
【问题讨论】:
-
有什么帮助吗?戈登的以下回答不起作用
标签: sql sql-server select insert