8
votes

SQL Server déclencheur

J'ai une structure de table comme ceci:

insert into temp value('s',s's')


3 commentaires

Pouvez-vous clarifier? Je ne comprends pas ce que tu veux vraiment atteindre ...


Une erreur de syntaxe, comme dans votre exemple, n'allez jamais à la gâchette.


D'accord avec Marc_s. Quelle est la "valeur mise à jour"? Statut? Quelle est la structure de la table appelée "temp"? Quelles sont ces valeurs de «s» que vous mettez là-bas?


4 Réponses :


0
votes

Ce que vous recherchez est un insert, mettez à jour la gâchette. Dans votre déclencheur, vous essayez l'insert ou mettez-vous à jour à l'intérieur d'une prise de vue. Si elle est erronée, vous insérez ces valeurs dans votre autre table (en supposant que c'est une table de journalisation de quelque sorte).


0 commentaires

10
votes

Je ne sais pas ce que vous voulez vraiment réaliser - mais dans SQL Server, vous avez deux types de déclencheurs:

  • après déclencheurs qui incendient après insertion, mise à jour, supprime
  • au lieu de déclencheurs pouvant attraper l'opération (insérer, mettre à jour, supprimer) et faire quelque chose à la place

    SQL Server ne possède pas avant insertion / mise à jour / supprimer des déclencheurs que d'autres RDBMS ont.

    Vous pouvez avoir un nombre après les déclencheurs, mais un seul au lieu de déclencher pour chaque opération (Insérer, mettre à jour, supprimer).

    Le cas plus commun est le dernier déclencheur, quelque chose comme: xxx

    ici, j'inspecte le "inséré "Pseudo-table contenant toutes les lignes insérées dans votre table et pour chaque ligne contenant" statut = échec ", vous insérerez des champs dans une table" Temp ".

    Encore une fois - je ne sais pas ce que vous voulez vraiment en détail - mais ce serait le contour approximatif Comment le faire dans le code T-SQL SQL Server.

    Marc < / p>


0 commentaires

0
votes

En supposant que ce que vous voulez dire est, si la nouvelle valeur du statut soit échoue, alors qu'en est-il de cela:

Les déclencheurs font référence à la nouvelle ligne d'enregistrement comme «insérée» et l'ancienne comme «supprimée»

Créer la gâchette TrgcheckinSertedValues ​​sur Status_Master après insérer comme

commencer

si inséré.Status = 'échouer' Insérer dans dbo.temp (champ1, champ2, champ3)
Sélectionnez I.Name, i.Status, "n'importe quoi" d'inséré I


0 commentaires

3
votes

Déclencheur dans SQL, est utilisé pour déclencher une requête lorsque toute action effectue dans la table particulière comme insertion, suppression, mise à jour

http://allinworld99.blogspot.com/2015/04/ Triggers-in-sql.html


0 commentaires