次のクエリは、2 つのデータベース間で主キーを比較します。1 つのデータベースのすべての主キー制約を識別しますが、他のデータベースは識別しません。クエリを実行すると、一部の制約名がシステム生成 (PK__afm_scmpref__2D27B809
またはPK__projfund__E34271EE251CF998
) のように見えます。これらはシステム生成であるため、データベース間で比較することはできません。この問題を回避する方法はありますか?
どうもありがとう、
これが私のコードです:
SELECT src.table_name AS src_table,
src.constraint_name AS scr_constraint_name,
src.column_name AS src_column_name,
src.ordinal_position AS src_ordinal_position,
tgt.table_name AS tgt_table_name ,
tgt.constraint_name AS tgt_constraint_name,
tgt.column_name AS tgt_column_name,
tgt.ordinal_position AS tgt_ordinal_position
from db_comp_src_primary_keys src
FULL OUTER JOIN
db_comp_tgt_primary_keys tgt ON
src.table_name = tgt.table_name
AND src.constraint_name = tgt.constraint_name
WHERE ( (src.constraint_name IS NULL AND tgt.constraint_name IS NOT NULL)
OR (src.constraint_name IS NOT NULL AND tgt.constraint_name IS NULL))
AND ( ( tgt.table_name IS NULL
AND src.table_name IS NOT NULL
AND src.constraint_name IS NOT NULL
AND src.table_name IN
(SELECT table_name
FROM [HQ-193-STOCK-DBO].INFORMATION_SCHEMA.tables))
OR ( src.table_name IS NULL
AND tgt.table_name IS NOT NULL
AND tgt.constraint_name IS NOT NULL
AND tgt.table_name IN
(SELECT table_name
FROM [HQ-211-STOCK-DBO].INFORMATION_SCHEMA.tables)))