概要:INSERTステートメントでOUTPUT句を
使用して、挿入先のテーブルに存在しない列を返す必要があります。それを回避できるのであれば、挿入先のテーブルに列を追加したくありません。
詳細:
FinishedDocumentテーブルには1つの列しかありません。これは私が挿入しているテーブルです。
FinishedDocument
-DocumentID
私のドキュメントテーブルには2つの列があります。これは、データを返す必要があるテーブルです。
ドキュメント
-DocumentID-
説明
次の例では、FinishedDocumentに1行を挿入します。そのOUTPUT句は、挿入されたDocumentIDを返します。これは機能しますが、挿入されたドキュメントの説明が表示されません。
INSERT INTO FinishedDocument
OUTPUT INSERTED.DocumentID
SELECT DocumentID
FROM Document
WHERE DocumentID = @DocumentID
Documentテーブルから、INSERTから一致するドキュメントのDocumentIDとDescriptionの両方を返す必要があります。
これを実現するにはどのような構文が必要ですか?OUTPUT句を微調整することで(はっきりと理解できない方法で)、1つのINSERTステートメントでのみ可能だと思いますか?
私がここで下る道に似ていないより賢い方法はありますか?
編集: SQL Server 2005