以下はスクリプトが機能しませんが、単一の行を挿入する場合にのみ動作します。新しく作成されたIDを2つのテーブルに挿入する
documentIdは、1行目ではなく、DOCUMENTS
から取得するテーブルから宣言する必要があります。
私は約SCOPE_IDENTITY()
を読んでいますが、適用方法は不明です。
[dbo].[DOCUMENTS].DOCUMENT_ID
は、自動インクリメントintの主キーです。必要とされるどのような
は、DOCUMENTS
テーブルに行が挿入されるごとにあり、それを自動的に挿入し、最後の行に追加し、@documentId
は、下の2つのテーブルに定義された移入するために、新しく作成したDOCUMENT_ID
を使用しています。
declare @documentId int;
set @documentId = (SELECT MAX(DOCUMENT_ID) FROM dbo.DOCUMENTS)+ 1
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
@documentId,
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
----- Insert into another table ------------
INSERT INTO [dbo].[SERVICE_REQUEST_ITEM_DOCS] (
[SERVICE_REQUEST_ID]
,[SERVICE_REQUEST_ITEM_SEQNO]
,[DOCUMENT_ID]
,[LAST_UPDATE_ID]
,[LAST_UPDATE_DATE]
,[COVER_LETTER])
SELECT
sr.SERVICE_REQUEST_ID,
1,
@documentId,
0,
GETDATE(),
0
FROM [dbo].[SERVICE_REQUESTS] sr
なぜ、自動増分でプライマリキー列の値を渡していますか? –
申し訳ありません。 SQLは私の最強ではありません。どのようにそれを行う必要がありますか? – ove
@PareshJ私は新しいIDを生成し、両方のテーブルに挿入するときに再利用しようとしています – ove