Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/11/2011, 09h57   #1
Membre Expert
 
Avatar de Kropernic
 
Homme
Analyste / Programmeur
Inscription : juillet 2006
Messages : 1 305
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : Belgique

Informations professionnelles :
Activité : Analyste / Programmeur
Secteur : Distribution

Informations forums :
Inscription : juillet 2006
Messages : 1 305
Points : 1 017
Points : 1 017
Par défaut question simple sur les triggers

Bonjour,

Je voudrais juste savoir si un trigger INSTEAD OF UPDATE qui effectue une insertion déclenchera le trigger AFTER INSERT ou non ?

D'instinct je dirais que oui mais vu que c'est un trigger qui fait l'insertion, j'ai un doute.

Merci d'avance,

Griftou.
Kropernic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 15h59   #2
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
Question trop vague !
Votre trigger INSTEAD OF est sur une vue ou une table ?
Quel est le code du trigger ???

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 17h42   #3
Membre Expert
 
Homme Sylvain Devidal
Chef de projets Générix
Inscription : février 2010
Messages : 1 062
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Devidal
Âge : 33
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Chef de projets Générix
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2010
Messages : 1 062
Points : 1 515
Points : 1 515
Je dirais que oui. En revanche, si le trigger INSTEAD OF UPDATE fait un update sur la table (logique) il ne se re-déclenchera pas.

Attention aussi : il faut vérifier le paramètre "Allow tiggers to yeild triggers" et le "max recursion level" qui sont nécessaires pour qu'un trigger puisse déclencher d'autres triggers.
StringBuilder est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 18h21   #4
Membre Expert
 
Avatar de Kropernic
 
Homme
Analyste / Programmeur
Inscription : juillet 2006
Messages : 1 305
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : Belgique

Informations professionnelles :
Activité : Analyste / Programmeur
Secteur : Distribution

Informations forums :
Inscription : juillet 2006
Messages : 1 305
Points : 1 017
Points : 1 017
Je ne savais déjà pas qu'on pouvait faire des triggers sur des vues

Sinon pour préciser, disons que j'ai une table, nommons la T , qui doit "versionner" un champ qu'elle contient.

Un exemple concret de champs :

Code :
1
2
3
4
5
ID : INT 
LANGUE : INT 
VERSION : INT 
TEXTE : VARCHAR(255)
LASTUPDATE : DATETIME

Pour l'exemple d'utilisation, disons que nous avons les records suivants :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
ID = 1
LANGUE = 1
VERSION = 1
TEXTE = 'MACHIN'
LASTUPDATE = 05/11/2011
 
 
ID = 2
LANGUE = 1
VERSION = 1
TEXTE = 'TRUC'
LASTUPDATE = 06/11/2011
J'ai déjà un trigger sur l'insertion qui met la date du système dans le champ LASTUPDATE.
Pour la mise à jour, si l'utilisateur veut modifier le champ texte, à la place de faire un update du record, je veux créer un nouveau record avec le même id et la même langue mais avec version + 1 et le nouveau texte.

Donc si on veut remplacer machin par bidule, j'aurais alors le record suivant :
Code :
1
2
3
4
5
ID = 1
LANGUE = 1
VERSION = 2
TEXTE = 'BIDULE'
LASTUPDATE = 10/11/2011


Voilà, j'espère que je suis plus clair et que cette manière de faire n'est pas trop abérante... Je ne suis pas du tout DBA de formation mais vu qu'on n'a pas de DBA dans la boite où je bosse, faut bien s'y essayer ^^.

Merci d'avance.

Griftou.
Kropernic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 10h40   #5
Membre Expert
 
Avatar de Kropernic
 
Homme
Analyste / Programmeur
Inscription : juillet 2006
Messages : 1 305
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : Belgique

Informations professionnelles :
Activité : Analyste / Programmeur
Secteur : Distribution

Informations forums :
Inscription : juillet 2006
Messages : 1 305
Points : 1 017
Points : 1 017
Nouvelle petite question toujours sur les triggers.

Quand on fait un update, les nouvelles valeurs se trouvent bien dans la table inserted et les anciennes dans deleted ?

Est-ce correct ?

Et dans le cas d'un trigger instead of update ?

Griftou.
Kropernic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 13h16   #6
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
OUI

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h26.


 
 
 
 
Partenaires

Hébergement Web