存在しない場合は、最初に列を作成します。
ALTER TABLE database2..targetTable
ADD targetColumn int null -- or whatever column definition is needed
Sql Server 2005 を使用しているため、新しいMERGEステートメントを使用できます。
MERGEステートメントには、ソースから行が欠落している (挿入を実行できる)、宛先から行が欠落している (削除を実行できる)、行の一致 (更新を実行できる)、およびすべてがアトミックに実行されるなど、1 つのステートメントですべての状況を処理できるという利点があります。単一のトランザクションで。例:
MERGE database2..targetTable AS t
USING (SELECT sourceColumn FROM sourceDatabase1..sourceTable) as s
ON t.PrimaryKeyCol = s.PrimaryKeyCol -- or whatever the match should be bassed on
WHEN MATCHED THEN
UPDATE SET t.targetColumn = s.sourceColumn
WHEN NOT MATCHED THEN
INSERT (targetColumn, [other columns ...]) VALUES (s.sourceColumn, [other values ..])
MERGE ステートメントは、あなたのようなケースを解決するために導入されました。これを使用することをお勧めします。複雑さを増すことなく、1 つのステートメントで MERGE と同じことを基本的に達成する、複数の SQL バッチ ステートメントを使用するソリューションよりもはるかに強力です。