Mise à jour de la table principale SQL avec les nouveldatatables de table toutes les heures en fonction de l'absence de correspondance sur Composite PK

À l'aide de SQL Server 2008

J'ai une tâche SSIS qui télécharge un file CSV à partir de FTP et renomme le file toutes les heures. Après cela, je fais une insertion en masse des données dans une nouvelle table appelée NEWFTPDATA.

Les données de ce file concernent le jour actuel jusqu'à l'heure actuelle. La table a une key primaire composite composée de 4 colonnes différentes.

L'étape suivante que je dois compléter est, en utilisant T-SQL, comparer cette nouvelle table à ma table d'archives principale existante et insert toutes les lignes qui n'existent pas déjà basées sur la correspondance (ou plutôt ne pas correspondre sur ces 4 colonnes)

Comme je downloadai ce file toutes les heures (pour les rapports en time réel) pour chaque exécution subséquente, il y aura des données en double que je ne veux pas insert dans la table principale pour éviter la duplication des données.

J'ai trouvé des moyens de le faire sur la base de l'existence d'une colonne particulière, mais je n'arrive pas à comprendre comment le faire sur la base de 4 colonnes doivent correspondre.

Le stream de travail devrait être comme suit

Mettre à jour MASTERTABLE depuis NEWFTPDATA où newftpdata.column1, newftpdata.column2, newftpdata.column3, newftpdata.column4 n'existent pas dans MASTERTABLE

J'espère avoir fourni des informations substantielles pour cette question. Si d'autres détails sont requirejs s'il vous plaît faites le moi savoir. Je vous remercie.

vous pouvez utiliser MERGE

MERGE MasterTable as dest using newftpdata as src on dest.column1 = src.column1 and dest.column2 = src.column2 and dest.column3 = src.column3 and dest.column4 = src.column4 WHEN NOT MATCHED then INSERT (column1, column2, ...) values ( Src.column1, Src.column2,....)