別のデータベースの別のテーブルの情報を参照として使用して、欠落している行が追加され、最新ではない行が更新されるように、テーブルを更新しようとしています。
ただし、一部のテーブルには主キーがあり、一部にはありません。主キーがある場合、挿入コマンドは実行されず、主キーがない場合、行が複製されます。
挿入コマンドに、すでに存在する主キー値をスキップさせる方法はありますか?
SQL Server Management Studio 2005を使用しています。これまでに、主キー(PKcolumn)を持つテーブルのコードを示します。
INSERT [testDB].[dbo].[table1]
SELECT * FROM [sourceDB].[dbo].[table1]
UPDATE test
SET
test.[PKcolumn] = source.[PKcolumn]
,test.[column2] = source.[column2]
,test.[column3] = source.[column3]
FROM
[sourceDB].[dbo].[sourceDB] AS source
INNER JOIN
[testDB].[dbo].[PKcolumn] AS test
ON source.[PKcolumn] = test.[PKcolumn]
更新は完全に機能しますが、重複が1つでもある場合、挿入はまったく実行されません。
このコードを機能させる方法について何か提案はありますか?
また、主キーなしでテーブルで同じことを行うためのヒントはありますか?