更新するテーブルからいくつかの値を選択し、すぐに更新する必要があります。さらに、更新されたレコードごとに1つの新しいレコードをテーブルに挿入する必要があります。レコードを選択して、私は今更新からのINSERT INTO SELECT
UPDATE TableA SET SomeField = 1 OUTPUT RecordID FROM TableA WHERE RecordID IN
(
SELECT TOP @Something RecordID FROM TableA
)
のような構造を使用しています更新するには、挿入部のために、私はこのようにOUTPUT
句を利用して、INSERT INTO SELECT
へUPDATE
声明をラップしたいと思います。しかし、SQLは私が行うとき
INSERT INTO TableA SELECT (RecordID , GETDATE()) FROM
(
UPDATE TableA SET SomeField = 1 OUTPUT RecordID FROM TableA WHERE RecordID IN
(
SELECT TOP @Something RecordID FROM TableA
)
)
は私もOUTPUT
句で、1つのステートメントでそれをすべて行うことができません不平を言いますか?
いいえ、私は 'RecordID'を取得し、別のデータを新しい行を挿入したいです。 –
更新されたすべての行のレコードIDが取得され、別のテーブルまたは他の列に挿入できます。 – DanNsk
あなたは正しいですが、 'TableA'には動作しない制約がある場合... –