SQLBulk Copy avec déclencheur qui déclenche la requête de mise à jour

sql sqlbulkcopy triggers

Question

J'ai insérer des enregistrements de feuille Excel à SQL en utilisant SQLBulkCopy .

Le code fonctionne bien pour moi.

Mais je dois déclencher l'insertion à base de déclencheur.

Dans le déclencheur, j'insère des enregistrements dans une autre table en fonction de Inserted

cela fonctionne aussi très bien.

mais si je vérifie qu'une autre table possède déjà cet enregistrement que je tente d'insérer et de mettre à jour cet enregistrement, cela ne fonctionne pas pour moi.

Comment puis-je résoudre mon problème?

Réponse acceptée

Utilisez l'instruction Merge dans votre déclencheur si vous utilisez SQL Server 2008

Exemple:

MERGE INTO dbo.Table1 AS t
USING dbo.inserted AS i
        ON t.id= i.id
WHEN MATCHED THEN
    UPDATE SET
      t.col1= i.col1,
      t.col2= i.col2
WHEN NOT MATCHED THEN 
      INSERT (col1, col2)
      VALUES (i.col1, i.col2)


Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow