• A primary key is not needed, but a unique constraint at minimum.

    CREATE TABLE GIS_Data

    (ParcelID int)

    CREATE TABLE Field_Data

    (ParcelID int)

    INSERT into GIS_Data

    select 1 union

    select 2 union

    select 3 union

    select 4 union

    select 5 union

    select 6

    INSERT into Field_Data

    select 4 union

    select 5 union

    select 6 union

    select 7 union

    select 8 union

    select 9

    CREATE UNIQUE NONCLUSTERED INDEX IX_Field_Data ON dbo.Field_Data

    (ParcelID)

    ALTER TABLE GIS_DATA

    ADD CONSTRAINT FK_FIELD_DATA FOREIGN KEY (ParcelID)

    REFERENCES Field_Data (ParcelID)

    --These records have not match in the Field_Data table

    SELECT ParcelID

    FROM GIS_Data WHERE ParcelID NOT IN (SELECT ParcelID from Field_Data)

    --They must be updated or deleted from GIS_Data, or inserted int Field_Data

    BEGIN TRAN

    DELETE FROM GIS_Data WHERE ParcelID NOT IN (SELECT ParcelID from Field_Data)

    ALTER TABLE GIS_Data

    ADD CONSTRAINT FK_FIELD_DATA FOREIGN KEY (ParcelID)

    REFERENCES Field_Data (ParcelID)

    ROLLBACK

    BEGIN TRAN

    INSERT INTO Field_Data

    SELECT ParcelID FROM GIS_Data WHERE ParcelID NOT IN (SELECT ParcelID from Field_Data)

    ALTER TABLE GIS_Data

    ADD CONSTRAINT FK_FIELD_DATA FOREIGN KEY (ParcelID)

    REFERENCES Field_Data (ParcelID)

    ROLLBACK

    DROP TABLE GIS_Data

    DROP TABLE Field_Data

    Todd Carrier
    MCITP - Database Administrator (SQL 2008)
    MCSE: Data Platform (SQL 2012)