回答が見つからないMERGE
構文について質問があります。MERGE構文SQL Server 2012エラー
:
ステップ1:
create temp table #TempTbl
ステップ2:MERGE
:
MERGE INTO T1 target
USING T2 AS source ON (bunch of columns)
WHEN MATCHED
UPDATE
SET some columns from target equal some columns from source
WHEN NOT MATCHED BY TARGET
THEN INSERT (bunch of columns)
VALUES (bunch of columns from SOURCE)
OUTPUT $action, deleted.* into #TempTbl
私が知る必要がある何が私の上記の手順のためである私は見つけられないでしょう私の一時テーブルの空のデータ#TempTbl
、私はWHEN NOT MATCHED ... THEN INSERT
と書かれていますが、DELETE
ではありませんか?
2番目の質問、私はエラーメッセージを抱えていると、列の種類は、可能$action
べき:私はきたものの
列名または指定された値は、テーブル定義に
と一致しません私のテーブルから最初の列を定義しようとしましたvarchar(100)
、nvarchar(100)
、運がありません。しかし、$action
フィールドを省略すると、私の声明が機能します。
'@のaction'は#のTempTbl''であなたの最初の列と同じデータ型でなければなりません。 '削除されたものから何かを保存するには、何かを削除する必要があります - 'ソースと一致しないときは削除する ' – gofr1
@BogdanM変更された値や挿入された値を保存しますか? – jpw
[OK]をクリックします。私が書いたように、私はすでにそれを試しましたが、運がありません。 – BogdanM