juin
2011
Simuler la commande MERGE sous SQL SERVER 2005
Soit la table source Contacts qu’on désire mettre à jour à l’aide la table cible TMP_Contacts
Dans notre exemple les deux tables ont les mêmes colonnes.
– Table temporaire pour stocker l'ID des nouveaux contacts
CREATE TABLE #updated_GUID (objectGUID nvarchar(100))
–Mis à jour des contacts à partir de la table cible TMP_Contacts
UPDATE Contacts
SET
FirstName = t.FirstName
,Initials = t.Initials
,LastName = t.LastName
,Company = t.Company
,BusinessPhone = t.BusinessPhone
,EmailAddress = t.EmailAddress
–Recupérer l’ID des contacts mis à jours
OUTPUT inserted.objectGUID INTO #updated_GUID
FROM Contacts c, TMP_Contact t
WHERE c.objectGUID = t.objectGUID
–Insertion des nouveaux contacts
INSERT INTO Contacts(
FirstName
,Initials
,LastName
,Company
,BusinessPhone
,EmailAddress)
SELECT
FirstName
,Initials
,LastName
,Company
,BusinessPhone
,EmailAddress
FROM TMP_Contacts t
WHERE t.objectGUID NOT IN(SELECT objectGUID FROM #updated_GUID)
–Supprimer la table temporaire
DROP TABLE #updated_GUID
———————————————————–
Etienne ZINZINDOHOUE
———————————————————–