このトピックは、ストアドプロシージャを使用して、SQL Serverのあるテーブルから別のテーブルに欠落している行をコピーすることに関連していますが、今回の問題はもう少し複雑です。
同一の異なるデータベース(同じサーバー上)にテーブルを作成する必要があります。左側のデータベーステーブルから右側のデータベーステーブルにデータ行を転送する必要がありますが、右側のデータベーステーブルにまだない行のみを転送したいと思います。
私のテーブルには4つの主キーがあります。画像を参照してください
このようなものを使いたい
insert into [EXTERN_EPI6R2].[dbo].[tblBigTableReference]
select * from [EXTERN].[dbo].[tblBigTableReference]
where (
pkId not in (select pkId
from [EXTERN_EPI6R2].[dbo].[tblBigTableReference])
and PropertyName not in (select PropertyName
from [EXTERN_EPI6R2].[dbo].[tblBigTableReference])
and IsKey not in (select IsKey
from [EXTERN_EPI6R2].[dbo].[tblBigTableReference])
and [Index] not in (select [Index]
from [EXTERN_EPI6R2].[dbo].[tblBigTableReference])
)
しかし、条件の積み重ねが何らかの形で間違っているため、それは機能しません。
SQL Server2008R2を使用しています