Je tente de fusionner plusieurs bases de données SQL Server en une seule. Le problème est que l'une des tables a un champ d'identité en tant que clé primaire. La table a également deux champs uniquesid. Quelque chose comme:Fusionner des bases de données SQL Server
datatable:
id pk identity
link1 uniqueid
link2 uniqueid
Ma première pensée a été pour exécuter le script suivant:
declare @maxId as int
set @maxId = (SELECT IsNull(MAX(id),0) FROM datatable)
SET IDENTITY_INSERT datatable ON
INSERT INTO database1.datatable id, link1, link2 SELECT id + @maxId, link1, link2 FROM database2.datatable
SET IDENTITY_INSERT datatable OFF
Ce qui fonctionne, sauf que c'est la requête est exécutée plusieurs fois les données se dupliqués. Quelle serait la meilleure façon de s'assurer qu'une combinaison de link1 et link2 n'existe pas déjà dans ma table?
S'il n'y avait qu'une seule colonne, je pourrais utiliser l'instruction IN, mais malheureusement, j'ai besoin que les deux colonnes correspondent.
Exactement les informations que je cherchais. Merci. – Kyle