Dans mon appli, une donnée peut être modifiée à de multiple endroits.
Au moment de la modif, je souhaite contrôler si l'utilisateur en a le droit.
Donc au lieu de passer partout, j'ai pensé à faire plutôt un trigger sur la
table en question.
Le but étant d'annuler les update ou delete si l'utilisateur n'en a pas le
droit.
Si j'utilise le paramètre AFTER, le update étant déjà fait (dans la table
updated), je ne pourrais inverser l'opération puisque j'aurais perdu
l'ancienne valeur.
Je pense donc utiliser INSTEAD OF pour filtrer. Mais là, comment peut-on
récupérer la requête SQL ayant provoqué le trigger ? Parce que si
l'utilisateur a le droit, il faut quand même que j'exécute sa requête.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Boss Hog
Salut, d'aprés ce que je crois savoir(je n'utilise pas les trigger) lors d'un update, les ancienes valeurs sont stockées dans une table temporaire porpre au trigger(inserted et deleted) ce qui fait que meme en utilisant le mode AFTER tu doit pouvoir revenir à l'ancienne valeur. @+ Boss Hog
"Yan" wrote in message news:418f4020$0$18897$
Bonjour,
Dans mon appli, une donnée peut être modifiée à de multiple endroits. Au moment de la modif, je souhaite contrôler si l'utilisateur en a le
droit.
Donc au lieu de passer partout, j'ai pensé à faire plutôt un trigger sur
la
table en question.
Le but étant d'annuler les update ou delete si l'utilisateur n'en a pas le droit.
Si j'utilise le paramètre AFTER, le update étant déjà fait (dans la table updated), je ne pourrais inverser l'opération puisque j'aurais perdu l'ancienne valeur. Je pense donc utiliser INSTEAD OF pour filtrer. Mais là, comment peut-on récupérer la requête SQL ayant provoqué le trigger ? Parce que si l'utilisateur a le droit, il faut quand même que j'exécute sa requête.
Je sais pas si c'est bien clair.
Merci d'avance
Salut,
d'aprés ce que je crois savoir(je n'utilise pas les trigger) lors d'un
update, les ancienes valeurs sont stockées dans une table temporaire porpre
au trigger(inserted et deleted) ce qui fait que meme en utilisant le mode
AFTER tu doit pouvoir revenir à l'ancienne valeur.
@+ Boss Hog
"Yan" <yan@nepasrepondre.com> wrote in message
news:418f4020$0$18897$8fcfb975@news.wanadoo.fr...
Bonjour,
Dans mon appli, une donnée peut être modifiée à de multiple endroits.
Au moment de la modif, je souhaite contrôler si l'utilisateur en a le
droit.
Donc au lieu de passer partout, j'ai pensé à faire plutôt un trigger sur
la
table en question.
Le but étant d'annuler les update ou delete si l'utilisateur n'en a pas le
droit.
Si j'utilise le paramètre AFTER, le update étant déjà fait (dans la table
updated), je ne pourrais inverser l'opération puisque j'aurais perdu
l'ancienne valeur.
Je pense donc utiliser INSTEAD OF pour filtrer. Mais là, comment peut-on
récupérer la requête SQL ayant provoqué le trigger ? Parce que si
l'utilisateur a le droit, il faut quand même que j'exécute sa requête.
Salut, d'aprés ce que je crois savoir(je n'utilise pas les trigger) lors d'un update, les ancienes valeurs sont stockées dans une table temporaire porpre au trigger(inserted et deleted) ce qui fait que meme en utilisant le mode AFTER tu doit pouvoir revenir à l'ancienne valeur. @+ Boss Hog
"Yan" wrote in message news:418f4020$0$18897$
Bonjour,
Dans mon appli, une donnée peut être modifiée à de multiple endroits. Au moment de la modif, je souhaite contrôler si l'utilisateur en a le
droit.
Donc au lieu de passer partout, j'ai pensé à faire plutôt un trigger sur
la
table en question.
Le but étant d'annuler les update ou delete si l'utilisateur n'en a pas le droit.
Si j'utilise le paramètre AFTER, le update étant déjà fait (dans la table updated), je ne pourrais inverser l'opération puisque j'aurais perdu l'ancienne valeur. Je pense donc utiliser INSTEAD OF pour filtrer. Mais là, comment peut-on récupérer la requête SQL ayant provoqué le trigger ? Parce que si l'utilisateur a le droit, il faut quand même que j'exécute sa requête.
Je sais pas si c'est bien clair.
Merci d'avance
Yan
Je rectifie pour AFTER, la table updated conserve les anciennes valeurs
Par contre, si vous avez des réponses concernant INSTEAD OF, ça m'intéresse quand même
Merci
"Yan" a écrit dans le message de news:418f4020$0$18897$
Bonjour,
Dans mon appli, une donnée peut être modifiée à de multiple endroits. Au moment de la modif, je souhaite contrôler si l'utilisateur en a le
droit.
Donc au lieu de passer partout, j'ai pensé à faire plutôt un trigger sur
la
table en question.
Le but étant d'annuler les update ou delete si l'utilisateur n'en a pas le droit.
Si j'utilise le paramètre AFTER, le update étant déjà fait (dans la table updated), je ne pourrais inverser l'opération puisque j'aurais perdu l'ancienne valeur. Je pense donc utiliser INSTEAD OF pour filtrer. Mais là, comment peut-on récupérer la requête SQL ayant provoqué le trigger ? Parce que si l'utilisateur a le droit, il faut quand même que j'exécute sa requête.
Je sais pas si c'est bien clair.
Merci d'avance
Je rectifie pour AFTER, la table updated conserve les anciennes valeurs
Par contre, si vous avez des réponses concernant INSTEAD OF, ça m'intéresse
quand même
Merci
"Yan" <yan@nepasrepondre.com> a écrit dans le message de
news:418f4020$0$18897$8fcfb975@news.wanadoo.fr...
Bonjour,
Dans mon appli, une donnée peut être modifiée à de multiple endroits.
Au moment de la modif, je souhaite contrôler si l'utilisateur en a le
droit.
Donc au lieu de passer partout, j'ai pensé à faire plutôt un trigger sur
la
table en question.
Le but étant d'annuler les update ou delete si l'utilisateur n'en a pas le
droit.
Si j'utilise le paramètre AFTER, le update étant déjà fait (dans la table
updated), je ne pourrais inverser l'opération puisque j'aurais perdu
l'ancienne valeur.
Je pense donc utiliser INSTEAD OF pour filtrer. Mais là, comment peut-on
récupérer la requête SQL ayant provoqué le trigger ? Parce que si
l'utilisateur a le droit, il faut quand même que j'exécute sa requête.
Je rectifie pour AFTER, la table updated conserve les anciennes valeurs
Par contre, si vous avez des réponses concernant INSTEAD OF, ça m'intéresse quand même
Merci
"Yan" a écrit dans le message de news:418f4020$0$18897$
Bonjour,
Dans mon appli, une donnée peut être modifiée à de multiple endroits. Au moment de la modif, je souhaite contrôler si l'utilisateur en a le
droit.
Donc au lieu de passer partout, j'ai pensé à faire plutôt un trigger sur
la
table en question.
Le but étant d'annuler les update ou delete si l'utilisateur n'en a pas le droit.
Si j'utilise le paramètre AFTER, le update étant déjà fait (dans la table updated), je ne pourrais inverser l'opération puisque j'aurais perdu l'ancienne valeur. Je pense donc utiliser INSTEAD OF pour filtrer. Mais là, comment peut-on récupérer la requête SQL ayant provoqué le trigger ? Parce que si l'utilisateur a le droit, il faut quand même que j'exécute sa requête.
Je sais pas si c'est bien clair.
Merci d'avance
Yan
J'ai mis table updated, mais elle n'existe pas bien sûr.
Je viens de voir aussi que les anciennes valeurs sont concervées. Merci.
"Boss Hog @tiscali.fr>" <bosshog<replace> a écrit dans le message de news:
Salut, d'aprés ce que je crois savoir(je n'utilise pas les trigger) lors d'un update, les ancienes valeurs sont stockées dans une table temporaire
porpre
au trigger(inserted et deleted) ce qui fait que meme en utilisant le mode AFTER tu doit pouvoir revenir à l'ancienne valeur. @+ Boss Hog
"Yan" wrote in message news:418f4020$0$18897$ > Bonjour, > > Dans mon appli, une donnée peut être modifiée à de multiple endroits. > Au moment de la modif, je souhaite contrôler si l'utilisateur en a le droit. > Donc au lieu de passer partout, j'ai pensé à faire plutôt un trigger sur la > table en question. > > Le but étant d'annuler les update ou delete si l'utilisateur n'en a pas
le
> droit. > > Si j'utilise le paramètre AFTER, le update étant déjà fait (dans la
table
> updated), je ne pourrais inverser l'opération puisque j'aurais perdu > l'ancienne valeur. > Je pense donc utiliser INSTEAD OF pour filtrer. Mais là, comment peut-on > récupérer la requête SQL ayant provoqué le trigger ? Parce que si > l'utilisateur a le droit, il faut quand même que j'exécute sa requête. > > Je sais pas si c'est bien clair. > > Merci d'avance > >
J'ai mis table updated, mais elle n'existe pas bien sûr.
Je viens de voir aussi que les anciennes valeurs sont concervées. Merci.
"Boss Hog @tiscali.fr>" <bosshog<replace> a écrit dans le message de
news:OTRGomXxEHA.2788@TK2MSFTNGP15.phx.gbl...
Salut,
d'aprés ce que je crois savoir(je n'utilise pas les trigger) lors d'un
update, les ancienes valeurs sont stockées dans une table temporaire
porpre
au trigger(inserted et deleted) ce qui fait que meme en utilisant le mode
AFTER tu doit pouvoir revenir à l'ancienne valeur.
@+ Boss Hog
"Yan" <yan@nepasrepondre.com> wrote in message
news:418f4020$0$18897$8fcfb975@news.wanadoo.fr...
> Bonjour,
>
> Dans mon appli, une donnée peut être modifiée à de multiple endroits.
> Au moment de la modif, je souhaite contrôler si l'utilisateur en a le
droit.
> Donc au lieu de passer partout, j'ai pensé à faire plutôt un trigger sur
la
> table en question.
>
> Le but étant d'annuler les update ou delete si l'utilisateur n'en a pas
le
> droit.
>
> Si j'utilise le paramètre AFTER, le update étant déjà fait (dans la
table
> updated), je ne pourrais inverser l'opération puisque j'aurais perdu
> l'ancienne valeur.
> Je pense donc utiliser INSTEAD OF pour filtrer. Mais là, comment peut-on
> récupérer la requête SQL ayant provoqué le trigger ? Parce que si
> l'utilisateur a le droit, il faut quand même que j'exécute sa requête.
>
> Je sais pas si c'est bien clair.
>
> Merci d'avance
>
>
J'ai mis table updated, mais elle n'existe pas bien sûr.
Je viens de voir aussi que les anciennes valeurs sont concervées. Merci.
"Boss Hog @tiscali.fr>" <bosshog<replace> a écrit dans le message de news:
Salut, d'aprés ce que je crois savoir(je n'utilise pas les trigger) lors d'un update, les ancienes valeurs sont stockées dans une table temporaire
porpre
au trigger(inserted et deleted) ce qui fait que meme en utilisant le mode AFTER tu doit pouvoir revenir à l'ancienne valeur. @+ Boss Hog
"Yan" wrote in message news:418f4020$0$18897$ > Bonjour, > > Dans mon appli, une donnée peut être modifiée à de multiple endroits. > Au moment de la modif, je souhaite contrôler si l'utilisateur en a le droit. > Donc au lieu de passer partout, j'ai pensé à faire plutôt un trigger sur la > table en question. > > Le but étant d'annuler les update ou delete si l'utilisateur n'en a pas
le
> droit. > > Si j'utilise le paramètre AFTER, le update étant déjà fait (dans la
table
> updated), je ne pourrais inverser l'opération puisque j'aurais perdu > l'ancienne valeur. > Je pense donc utiliser INSTEAD OF pour filtrer. Mais là, comment peut-on > récupérer la requête SQL ayant provoqué le trigger ? Parce que si > l'utilisateur a le droit, il faut quand même que j'exécute sa requête. > > Je sais pas si c'est bien clair. > > Merci d'avance > >
Yan
Non pardon, la table updated n'existe pas :) !
"Yan" a écrit dans le message de news:418f4436$0$15919$
Je rectifie pour AFTER, la table updated conserve les anciennes valeurs
Par contre, si vous avez des réponses concernant INSTEAD OF, ça
m'intéresse
quand même
Merci
"Yan" a écrit dans le message de news:418f4020$0$18897$ > Bonjour, > > Dans mon appli, une donnée peut être modifiée à de multiple endroits. > Au moment de la modif, je souhaite contrôler si l'utilisateur en a le droit. > Donc au lieu de passer partout, j'ai pensé à faire plutôt un trigger sur la > table en question. > > Le but étant d'annuler les update ou delete si l'utilisateur n'en a pas
le
> droit. > > Si j'utilise le paramètre AFTER, le update étant déjà fait (dans la
table
> updated), je ne pourrais inverser l'opération puisque j'aurais perdu > l'ancienne valeur. > Je pense donc utiliser INSTEAD OF pour filtrer. Mais là, comment peut-on > récupérer la requête SQL ayant provoqué le trigger ? Parce que si > l'utilisateur a le droit, il faut quand même que j'exécute sa requête. > > Je sais pas si c'est bien clair. > > Merci d'avance > >
Non pardon, la table updated n'existe pas :) !
"Yan" <yan@nepasrepondre.com> a écrit dans le message de
news:418f4436$0$15919$8fcfb975@news.wanadoo.fr...
Je rectifie pour AFTER, la table updated conserve les anciennes valeurs
Par contre, si vous avez des réponses concernant INSTEAD OF, ça
m'intéresse
quand même
Merci
"Yan" <yan@nepasrepondre.com> a écrit dans le message de
news:418f4020$0$18897$8fcfb975@news.wanadoo.fr...
> Bonjour,
>
> Dans mon appli, une donnée peut être modifiée à de multiple endroits.
> Au moment de la modif, je souhaite contrôler si l'utilisateur en a le
droit.
> Donc au lieu de passer partout, j'ai pensé à faire plutôt un trigger sur
la
> table en question.
>
> Le but étant d'annuler les update ou delete si l'utilisateur n'en a pas
le
> droit.
>
> Si j'utilise le paramètre AFTER, le update étant déjà fait (dans la
table
> updated), je ne pourrais inverser l'opération puisque j'aurais perdu
> l'ancienne valeur.
> Je pense donc utiliser INSTEAD OF pour filtrer. Mais là, comment peut-on
> récupérer la requête SQL ayant provoqué le trigger ? Parce que si
> l'utilisateur a le droit, il faut quand même que j'exécute sa requête.
>
> Je sais pas si c'est bien clair.
>
> Merci d'avance
>
>
"Yan" a écrit dans le message de news:418f4436$0$15919$
Je rectifie pour AFTER, la table updated conserve les anciennes valeurs
Par contre, si vous avez des réponses concernant INSTEAD OF, ça
m'intéresse
quand même
Merci
"Yan" a écrit dans le message de news:418f4020$0$18897$ > Bonjour, > > Dans mon appli, une donnée peut être modifiée à de multiple endroits. > Au moment de la modif, je souhaite contrôler si l'utilisateur en a le droit. > Donc au lieu de passer partout, j'ai pensé à faire plutôt un trigger sur la > table en question. > > Le but étant d'annuler les update ou delete si l'utilisateur n'en a pas
le
> droit. > > Si j'utilise le paramètre AFTER, le update étant déjà fait (dans la
table
> updated), je ne pourrais inverser l'opération puisque j'aurais perdu > l'ancienne valeur. > Je pense donc utiliser INSTEAD OF pour filtrer. Mais là, comment peut-on > récupérer la requête SQL ayant provoqué le trigger ? Parce que si > l'utilisateur a le droit, il faut quand même que j'exécute sa requête. > > Je sais pas si c'est bien clair. > > Merci d'avance > >
Yanos El Guerilleros
Salut,
Si tu lèves une erreur (de niveau 16 minimum il me semble) avec un ROLLBACK TRANSACTION, toutes tes modifs sont annulées, même dans un AFTER ainsi tu peux créer tes propres règles et empêcher toutes violations de ces règles.
Il y a un exemple dans le BOL dans la section "CREATE TRIGGER".
A++
Yanos
"Yan" a écrit dans le message de news:418f4020$0$18897$
Bonjour,
Dans mon appli, une donnée peut être modifiée à de multiple endroits. Au moment de la modif, je souhaite contrôler si l'utilisateur en a le
droit.
Donc au lieu de passer partout, j'ai pensé à faire plutôt un trigger sur
la
table en question.
Le but étant d'annuler les update ou delete si l'utilisateur n'en a pas le droit.
Si j'utilise le paramètre AFTER, le update étant déjà fait (dans la table updated), je ne pourrais inverser l'opération puisque j'aurais perdu l'ancienne valeur. Je pense donc utiliser INSTEAD OF pour filtrer. Mais là, comment peut-on récupérer la requête SQL ayant provoqué le trigger ? Parce que si l'utilisateur a le droit, il faut quand même que j'exécute sa requête.
Je sais pas si c'est bien clair.
Merci d'avance
Salut,
Si tu lèves une erreur (de niveau 16 minimum il me semble) avec un ROLLBACK
TRANSACTION, toutes tes modifs sont annulées, même dans un AFTER ainsi tu
peux créer tes propres règles et empêcher toutes violations de ces règles.
Il y a un exemple dans le BOL dans la section "CREATE TRIGGER".
A++
Yanos
"Yan" <yan@nepasrepondre.com> a écrit dans le message de
news:418f4020$0$18897$8fcfb975@news.wanadoo.fr...
Bonjour,
Dans mon appli, une donnée peut être modifiée à de multiple endroits.
Au moment de la modif, je souhaite contrôler si l'utilisateur en a le
droit.
Donc au lieu de passer partout, j'ai pensé à faire plutôt un trigger sur
la
table en question.
Le but étant d'annuler les update ou delete si l'utilisateur n'en a pas le
droit.
Si j'utilise le paramètre AFTER, le update étant déjà fait (dans la table
updated), je ne pourrais inverser l'opération puisque j'aurais perdu
l'ancienne valeur.
Je pense donc utiliser INSTEAD OF pour filtrer. Mais là, comment peut-on
récupérer la requête SQL ayant provoqué le trigger ? Parce que si
l'utilisateur a le droit, il faut quand même que j'exécute sa requête.
Si tu lèves une erreur (de niveau 16 minimum il me semble) avec un ROLLBACK TRANSACTION, toutes tes modifs sont annulées, même dans un AFTER ainsi tu peux créer tes propres règles et empêcher toutes violations de ces règles.
Il y a un exemple dans le BOL dans la section "CREATE TRIGGER".
A++
Yanos
"Yan" a écrit dans le message de news:418f4020$0$18897$
Bonjour,
Dans mon appli, une donnée peut être modifiée à de multiple endroits. Au moment de la modif, je souhaite contrôler si l'utilisateur en a le
droit.
Donc au lieu de passer partout, j'ai pensé à faire plutôt un trigger sur
la
table en question.
Le but étant d'annuler les update ou delete si l'utilisateur n'en a pas le droit.
Si j'utilise le paramètre AFTER, le update étant déjà fait (dans la table updated), je ne pourrais inverser l'opération puisque j'aurais perdu l'ancienne valeur. Je pense donc utiliser INSTEAD OF pour filtrer. Mais là, comment peut-on récupérer la requête SQL ayant provoqué le trigger ? Parce que si l'utilisateur a le droit, il faut quand même que j'exécute sa requête.
Je sais pas si c'est bien clair.
Merci d'avance
Yanos El Guerilleros
sinon pour la table "updated" elle n'existe pas car on utilise : - "inserted" : pour connaître les nouvelles valeurs - "delete" : pour connaître les anciennes valeurs
l'interêt d'une table updated est plutôt limitée dans ce contexte :)
A++
Yanos
"Yanos El Guerilleros" a écrit dans le message de news:
Salut,
Si tu lèves une erreur (de niveau 16 minimum il me semble) avec un
ROLLBACK
TRANSACTION, toutes tes modifs sont annulées, même dans un AFTER ainsi tu peux créer tes propres règles et empêcher toutes violations de ces règles.
Il y a un exemple dans le BOL dans la section "CREATE TRIGGER".
A++
Yanos
"Yan" a écrit dans le message de news:418f4020$0$18897$ > Bonjour, > > Dans mon appli, une donnée peut être modifiée à de multiple endroits. > Au moment de la modif, je souhaite contrôler si l'utilisateur en a le droit. > Donc au lieu de passer partout, j'ai pensé à faire plutôt un trigger sur la > table en question. > > Le but étant d'annuler les update ou delete si l'utilisateur n'en a pas
le
> droit. > > Si j'utilise le paramètre AFTER, le update étant déjà fait (dans la
table
> updated), je ne pourrais inverser l'opération puisque j'aurais perdu > l'ancienne valeur. > Je pense donc utiliser INSTEAD OF pour filtrer. Mais là, comment peut-on > récupérer la requête SQL ayant provoqué le trigger ? Parce que si > l'utilisateur a le droit, il faut quand même que j'exécute sa requête. > > Je sais pas si c'est bien clair. > > Merci d'avance > >
sinon pour la table "updated" elle n'existe pas car on utilise :
- "inserted" : pour connaître les nouvelles valeurs
- "delete" : pour connaître les anciennes valeurs
l'interêt d'une table updated est plutôt limitée dans ce contexte :)
A++
Yanos
"Yanos El Guerilleros" <yeg_NO_@_SPAM_yegounet.net> a écrit dans le message
de news:e1CBq0XxEHA.484@TK2MSFTNGP09.phx.gbl...
Salut,
Si tu lèves une erreur (de niveau 16 minimum il me semble) avec un
ROLLBACK
TRANSACTION, toutes tes modifs sont annulées, même dans un AFTER ainsi tu
peux créer tes propres règles et empêcher toutes violations de ces règles.
Il y a un exemple dans le BOL dans la section "CREATE TRIGGER".
A++
Yanos
"Yan" <yan@nepasrepondre.com> a écrit dans le message de
news:418f4020$0$18897$8fcfb975@news.wanadoo.fr...
> Bonjour,
>
> Dans mon appli, une donnée peut être modifiée à de multiple endroits.
> Au moment de la modif, je souhaite contrôler si l'utilisateur en a le
droit.
> Donc au lieu de passer partout, j'ai pensé à faire plutôt un trigger sur
la
> table en question.
>
> Le but étant d'annuler les update ou delete si l'utilisateur n'en a pas
le
> droit.
>
> Si j'utilise le paramètre AFTER, le update étant déjà fait (dans la
table
> updated), je ne pourrais inverser l'opération puisque j'aurais perdu
> l'ancienne valeur.
> Je pense donc utiliser INSTEAD OF pour filtrer. Mais là, comment peut-on
> récupérer la requête SQL ayant provoqué le trigger ? Parce que si
> l'utilisateur a le droit, il faut quand même que j'exécute sa requête.
>
> Je sais pas si c'est bien clair.
>
> Merci d'avance
>
>
sinon pour la table "updated" elle n'existe pas car on utilise : - "inserted" : pour connaître les nouvelles valeurs - "delete" : pour connaître les anciennes valeurs
l'interêt d'une table updated est plutôt limitée dans ce contexte :)
A++
Yanos
"Yanos El Guerilleros" a écrit dans le message de news:
Salut,
Si tu lèves une erreur (de niveau 16 minimum il me semble) avec un
ROLLBACK
TRANSACTION, toutes tes modifs sont annulées, même dans un AFTER ainsi tu peux créer tes propres règles et empêcher toutes violations de ces règles.
Il y a un exemple dans le BOL dans la section "CREATE TRIGGER".
A++
Yanos
"Yan" a écrit dans le message de news:418f4020$0$18897$ > Bonjour, > > Dans mon appli, une donnée peut être modifiée à de multiple endroits. > Au moment de la modif, je souhaite contrôler si l'utilisateur en a le droit. > Donc au lieu de passer partout, j'ai pensé à faire plutôt un trigger sur la > table en question. > > Le but étant d'annuler les update ou delete si l'utilisateur n'en a pas
le
> droit. > > Si j'utilise le paramètre AFTER, le update étant déjà fait (dans la
table
> updated), je ne pourrais inverser l'opération puisque j'aurais perdu > l'ancienne valeur. > Je pense donc utiliser INSTEAD OF pour filtrer. Mais là, comment peut-on > récupérer la requête SQL ayant provoqué le trigger ? Parce que si > l'utilisateur a le droit, il faut quand même que j'exécute sa requête. > > Je sais pas si c'est bien clair. > > Merci d'avance > >
Yan
Merci
Pour le "updated", j'ai même pas réfléchi :)
"Yanos El Guerilleros" a écrit dans le message de news:
Salut,
Si tu lèves une erreur (de niveau 16 minimum il me semble) avec un
ROLLBACK
TRANSACTION, toutes tes modifs sont annulées, même dans un AFTER ainsi tu peux créer tes propres règles et empêcher toutes violations de ces règles.
Il y a un exemple dans le BOL dans la section "CREATE TRIGGER".
A++
Yanos
"Yan" a écrit dans le message de news:418f4020$0$18897$ > Bonjour, > > Dans mon appli, une donnée peut être modifiée à de multiple endroits. > Au moment de la modif, je souhaite contrôler si l'utilisateur en a le droit. > Donc au lieu de passer partout, j'ai pensé à faire plutôt un trigger sur la > table en question. > > Le but étant d'annuler les update ou delete si l'utilisateur n'en a pas
le
> droit. > > Si j'utilise le paramètre AFTER, le update étant déjà fait (dans la
table
> updated), je ne pourrais inverser l'opération puisque j'aurais perdu > l'ancienne valeur. > Je pense donc utiliser INSTEAD OF pour filtrer. Mais là, comment peut-on > récupérer la requête SQL ayant provoqué le trigger ? Parce que si > l'utilisateur a le droit, il faut quand même que j'exécute sa requête. > > Je sais pas si c'est bien clair. > > Merci d'avance > >
Merci
Pour le "updated", j'ai même pas réfléchi :)
"Yanos El Guerilleros" <yeg_NO_@_SPAM_yegounet.net> a écrit dans le message
de news:e1CBq0XxEHA.484@TK2MSFTNGP09.phx.gbl...
Salut,
Si tu lèves une erreur (de niveau 16 minimum il me semble) avec un
ROLLBACK
TRANSACTION, toutes tes modifs sont annulées, même dans un AFTER ainsi tu
peux créer tes propres règles et empêcher toutes violations de ces règles.
Il y a un exemple dans le BOL dans la section "CREATE TRIGGER".
A++
Yanos
"Yan" <yan@nepasrepondre.com> a écrit dans le message de
news:418f4020$0$18897$8fcfb975@news.wanadoo.fr...
> Bonjour,
>
> Dans mon appli, une donnée peut être modifiée à de multiple endroits.
> Au moment de la modif, je souhaite contrôler si l'utilisateur en a le
droit.
> Donc au lieu de passer partout, j'ai pensé à faire plutôt un trigger sur
la
> table en question.
>
> Le but étant d'annuler les update ou delete si l'utilisateur n'en a pas
le
> droit.
>
> Si j'utilise le paramètre AFTER, le update étant déjà fait (dans la
table
> updated), je ne pourrais inverser l'opération puisque j'aurais perdu
> l'ancienne valeur.
> Je pense donc utiliser INSTEAD OF pour filtrer. Mais là, comment peut-on
> récupérer la requête SQL ayant provoqué le trigger ? Parce que si
> l'utilisateur a le droit, il faut quand même que j'exécute sa requête.
>
> Je sais pas si c'est bien clair.
>
> Merci d'avance
>
>
"Yanos El Guerilleros" a écrit dans le message de news:
Salut,
Si tu lèves une erreur (de niveau 16 minimum il me semble) avec un
ROLLBACK
TRANSACTION, toutes tes modifs sont annulées, même dans un AFTER ainsi tu peux créer tes propres règles et empêcher toutes violations de ces règles.
Il y a un exemple dans le BOL dans la section "CREATE TRIGGER".
A++
Yanos
"Yan" a écrit dans le message de news:418f4020$0$18897$ > Bonjour, > > Dans mon appli, une donnée peut être modifiée à de multiple endroits. > Au moment de la modif, je souhaite contrôler si l'utilisateur en a le droit. > Donc au lieu de passer partout, j'ai pensé à faire plutôt un trigger sur la > table en question. > > Le but étant d'annuler les update ou delete si l'utilisateur n'en a pas
le
> droit. > > Si j'utilise le paramètre AFTER, le update étant déjà fait (dans la
table
> updated), je ne pourrais inverser l'opération puisque j'aurais perdu > l'ancienne valeur. > Je pense donc utiliser INSTEAD OF pour filtrer. Mais là, comment peut-on > récupérer la requête SQL ayant provoqué le trigger ? Parce que si > l'utilisateur a le droit, il faut quand même que j'exécute sa requête. > > Je sais pas si c'est bien clair. > > Merci d'avance > >