Bonjour,
J'aurais besoin d'un coup de main sur l'utilisation d'un MERGE avec SQL SERVER 2008.
J'ai donc un code qui ressemble à ça :
Le problème est qu'il peut arriver que certaines colonnes comparées comprennent des valeurs NULL.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 MERGE dbo.TABLE1 t1 USING ( SELECT t2.col1,t2.col2,t2.col3 FROM TABLE2 t2 ) AS t1_temp (col1,col2,col3) ON ( t1.col1 = t1_temp.col1 AND t1.col2 = t1_temp.col2 AND t1.col3 = t1_temp.col3 ) WHEN NOT MATCHED THEN INSERT ...
Si ma table t1 a une ligne :
col1 | col2 |col3
1 | NULL | 1
et que je tente d'insérer la même ligne, elle sera réinsérée car NULL n'étant pas vraiment une valeur SQL SERVER ne considère pas les deux lignes comme identiques.
Je me casse la tête là dessus mais je m'en sors pas vraiment.
Quelqu'un à une idée ?
J'ai tenté d'utiliser la commande SET ANSI_NULLS OFF, mais ça ne marche pas pour la condition ON d'un MERGE on dirait.
Partager