Bonjour à tous,
Je commence à travailler sur SQL Server et j'aimerai savoir si il est
possible d'annuler les modifications réalisées par l'utilisateur (dans le cas
update) dans un déclencheur (trigger).
Exemple :
Initialement il y a dans ma table MaTable :
Champ1 / Champ2 / Champ3 / Champ4...
Donnée1/ Donnée2/ Donnée3 / Donnée4
Pour une raison particulière, le déclencheur ne valide pas la modification
(ici je n'ai changé qu'un champ, mais les conditions de validation se font
sur plusieurs champs) et j'aimerai donc l'annuler... Comment faire ?
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
Christian Robert
Bonjour,
POur annuler c'est simple utilisez ROLLBACK TRANSACTION
Celà a pour effet d'annuler la transaction courante, donc tous les modification effectuées qui ont déclenchées le Trigger
-- Cordialement
Christian Robert Consultant - Formateur chez Winwise MCT - MCDBA - MCSD MCTS & MCITP SQL Server 2005
"Yann" a écrit :
Bonjour à tous, Je commence à travailler sur SQL Server et j'aimerai savoir si il est possible d'annuler les modifications réalisées par l'utilisateur (dans le cas update) dans un déclencheur (trigger).
Exemple : Initialement il y a dans ma table MaTable : Champ1 / Champ2 / Champ3 / Champ4... Donnée1/ Donnée2/ Donnée3 / Donnée4
Pour une raison particulière, le déclencheur ne valide pas la modification (ici je n'ai changé qu'un champ, mais les conditions de validation se font sur plusieurs champs) et j'aimerai donc l'annuler... Comment faire ?
Merci du coup de main :o)
-- Bye Yann
Bonjour,
POur annuler c'est simple utilisez
ROLLBACK TRANSACTION
Celà a pour effet d'annuler la transaction courante, donc tous les
modification effectuées qui ont déclenchées le Trigger
--
Cordialement
Christian Robert
Consultant - Formateur chez Winwise
MCT - MCDBA - MCSD
MCTS & MCITP SQL Server 2005
"Yann" a écrit :
Bonjour à tous,
Je commence à travailler sur SQL Server et j'aimerai savoir si il est
possible d'annuler les modifications réalisées par l'utilisateur (dans le cas
update) dans un déclencheur (trigger).
Exemple :
Initialement il y a dans ma table MaTable :
Champ1 / Champ2 / Champ3 / Champ4...
Donnée1/ Donnée2/ Donnée3 / Donnée4
Pour une raison particulière, le déclencheur ne valide pas la modification
(ici je n'ai changé qu'un champ, mais les conditions de validation se font
sur plusieurs champs) et j'aimerai donc l'annuler... Comment faire ?
POur annuler c'est simple utilisez ROLLBACK TRANSACTION
Celà a pour effet d'annuler la transaction courante, donc tous les modification effectuées qui ont déclenchées le Trigger
-- Cordialement
Christian Robert Consultant - Formateur chez Winwise MCT - MCDBA - MCSD MCTS & MCITP SQL Server 2005
"Yann" a écrit :
Bonjour à tous, Je commence à travailler sur SQL Server et j'aimerai savoir si il est possible d'annuler les modifications réalisées par l'utilisateur (dans le cas update) dans un déclencheur (trigger).
Exemple : Initialement il y a dans ma table MaTable : Champ1 / Champ2 / Champ3 / Champ4... Donnée1/ Donnée2/ Donnée3 / Donnée4
Pour une raison particulière, le déclencheur ne valide pas la modification (ici je n'ai changé qu'un champ, mais les conditions de validation se font sur plusieurs champs) et j'aimerai donc l'annuler... Comment faire ?
Merci du coup de main :o)
-- Bye Yann
Yann
J'avais bien pensé au ROLLBACK, mais j'ai pu lire qu'il fallait démarrer une TRANSACTION, ce que mon chef ne veux pas faire. Finalement, en fouillant encore un peu plus dans l'aide, j'ai pu lire que l'instruction INSERT, UPDATE et DELETE génére des TRANSACTION implicite, donc qu'un simple ROLLBACK suffit.
Merci et désolé pour le dérangement...
-- Bye Yann
"Christian Robert" a écrit :
Bonjour,
POur annuler c'est simple utilisez ROLLBACK TRANSACTION
Celà a pour effet d'annuler la transaction courante, donc tous les modification effectuées qui ont déclenchées le Trigger
-- Cordialement
Christian Robert Consultant - Formateur chez Winwise MCT - MCDBA - MCSD MCTS & MCITP SQL Server 2005
"Yann" a écrit :
> Bonjour à tous, > Je commence à travailler sur SQL Server et j'aimerai savoir si il est > possible d'annuler les modifications réalisées par l'utilisateur (dans le cas > update) dans un déclencheur (trigger). > > Exemple : > Initialement il y a dans ma table MaTable : > Champ1 / Champ2 / Champ3 / Champ4... > Donnée1/ Donnée2/ Donnée3 / Donnée4 > > L'utilisateur change une donnée > Champ1 / Champ2 / Champ3 / Champ4... > Donnée1/ Donnée2/ Donnée3 / Donnée5 > > Pour une raison particulière, le déclencheur ne valide pas la modification > (ici je n'ai changé qu'un champ, mais les conditions de validation se font > sur plusieurs champs) et j'aimerai donc l'annuler... Comment faire ? > > Merci du coup de main :o) > > -- > Bye > Yann
J'avais bien pensé au ROLLBACK, mais j'ai pu lire qu'il fallait démarrer une
TRANSACTION, ce que mon chef ne veux pas faire. Finalement, en fouillant
encore un peu plus dans l'aide, j'ai pu lire que l'instruction INSERT, UPDATE
et DELETE génére des TRANSACTION implicite, donc qu'un simple ROLLBACK suffit.
Merci et désolé pour le dérangement...
--
Bye
Yann
"Christian Robert" a écrit :
Bonjour,
POur annuler c'est simple utilisez
ROLLBACK TRANSACTION
Celà a pour effet d'annuler la transaction courante, donc tous les
modification effectuées qui ont déclenchées le Trigger
--
Cordialement
Christian Robert
Consultant - Formateur chez Winwise
MCT - MCDBA - MCSD
MCTS & MCITP SQL Server 2005
"Yann" a écrit :
> Bonjour à tous,
> Je commence à travailler sur SQL Server et j'aimerai savoir si il est
> possible d'annuler les modifications réalisées par l'utilisateur (dans le cas
> update) dans un déclencheur (trigger).
>
> Exemple :
> Initialement il y a dans ma table MaTable :
> Champ1 / Champ2 / Champ3 / Champ4...
> Donnée1/ Donnée2/ Donnée3 / Donnée4
>
> L'utilisateur change une donnée
> Champ1 / Champ2 / Champ3 / Champ4...
> Donnée1/ Donnée2/ Donnée3 / Donnée5
>
> Pour une raison particulière, le déclencheur ne valide pas la modification
> (ici je n'ai changé qu'un champ, mais les conditions de validation se font
> sur plusieurs champs) et j'aimerai donc l'annuler... Comment faire ?
>
> Merci du coup de main :o)
>
> --
> Bye
> Yann
J'avais bien pensé au ROLLBACK, mais j'ai pu lire qu'il fallait démarrer une TRANSACTION, ce que mon chef ne veux pas faire. Finalement, en fouillant encore un peu plus dans l'aide, j'ai pu lire que l'instruction INSERT, UPDATE et DELETE génére des TRANSACTION implicite, donc qu'un simple ROLLBACK suffit.
Merci et désolé pour le dérangement...
-- Bye Yann
"Christian Robert" a écrit :
Bonjour,
POur annuler c'est simple utilisez ROLLBACK TRANSACTION
Celà a pour effet d'annuler la transaction courante, donc tous les modification effectuées qui ont déclenchées le Trigger
-- Cordialement
Christian Robert Consultant - Formateur chez Winwise MCT - MCDBA - MCSD MCTS & MCITP SQL Server 2005
"Yann" a écrit :
> Bonjour à tous, > Je commence à travailler sur SQL Server et j'aimerai savoir si il est > possible d'annuler les modifications réalisées par l'utilisateur (dans le cas > update) dans un déclencheur (trigger). > > Exemple : > Initialement il y a dans ma table MaTable : > Champ1 / Champ2 / Champ3 / Champ4... > Donnée1/ Donnée2/ Donnée3 / Donnée4 > > L'utilisateur change une donnée > Champ1 / Champ2 / Champ3 / Champ4... > Donnée1/ Donnée2/ Donnée3 / Donnée5 > > Pour une raison particulière, le déclencheur ne valide pas la modification > (ici je n'ai changé qu'un champ, mais les conditions de validation se font > sur plusieurs champs) et j'aimerai donc l'annuler... Comment faire ? > > Merci du coup de main :o) > > -- > Bye > Yann
SQLpro [MVP]
Yann a écrit :
J'avais bien pensé au ROLLBACK, mais j'ai pu lire qu'il fallait démarrer une TRANSACTION, ce que mon chef ne veux pas faire.
ha bon, il y a des gens assez stupide pour vous interdire des transactions ? Si c'est le cas demandez lui comment faire un transfert d'argent de compte à compte (retrait d'un compte épargne pour alimenter un compte bancaire) sans transaction, et ce qui se passerais si le serveur plante entre les deux UPDATE !!!
Je serais vous je changerais de crémerie !
Finalement, en fouillant
encore un peu plus dans l'aide, j'ai pu lire que l'instruction INSERT, UPDATE et DELETE génére des TRANSACTION implicite, donc qu'un simple ROLLBACK suffit.
Merci et désolé pour le dérangement...
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Yann a écrit :
J'avais bien pensé au ROLLBACK, mais j'ai pu lire qu'il fallait démarrer une
TRANSACTION, ce que mon chef ne veux pas faire.
ha bon, il y a des gens assez stupide pour vous interdire des transactions ?
Si c'est le cas demandez lui comment faire un transfert d'argent de
compte à compte (retrait d'un compte épargne pour alimenter un compte
bancaire) sans transaction, et ce qui se passerais si le serveur plante
entre les deux UPDATE !!!
Je serais vous je changerais de crémerie !
Finalement, en fouillant
encore un peu plus dans l'aide, j'ai pu lire que l'instruction INSERT, UPDATE
et DELETE génére des TRANSACTION implicite, donc qu'un simple ROLLBACK suffit.
Merci et désolé pour le dérangement...
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
J'avais bien pensé au ROLLBACK, mais j'ai pu lire qu'il fallait démarrer une TRANSACTION, ce que mon chef ne veux pas faire.
ha bon, il y a des gens assez stupide pour vous interdire des transactions ? Si c'est le cas demandez lui comment faire un transfert d'argent de compte à compte (retrait d'un compte épargne pour alimenter un compte bancaire) sans transaction, et ce qui se passerais si le serveur plante entre les deux UPDATE !!!
Je serais vous je changerais de crémerie !
Finalement, en fouillant
encore un peu plus dans l'aide, j'ai pu lire que l'instruction INSERT, UPDATE et DELETE génére des TRANSACTION implicite, donc qu'un simple ROLLBACK suffit.
Merci et désolé pour le dérangement...
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Yann
Pour le moment, je ne vais pas changer de cremerie car je suis en formation (interne = autodidacte) sur .Net et SQL Server, d'où mes questions, parfois simplettes, mais dont je n'ai pas réussi à obtenir de réponse satisfaisante en interne. Mais je viens d'apprendre, grace à l'exemple, l'intêret des transactions explicites.
Merci SQLpro
-- Bye Yann
"SQLpro [MVP]" a écrit :
Yann a écrit : > J'avais bien pensé au ROLLBACK, mais j'ai pu lire qu'il fallait démarrer une > TRANSACTION, ce que mon chef ne veux pas faire.
ha bon, il y a des gens assez stupide pour vous interdire des transactions ? Si c'est le cas demandez lui comment faire un transfert d'argent de compte à compte (retrait d'un compte épargne pour alimenter un compte bancaire) sans transaction, et ce qui se passerais si le serveur plante entre les deux UPDATE !!!
Je serais vous je changerais de crémerie !
Finalement, en fouillant > encore un peu plus dans l'aide, j'ai pu lire que l'instruction INSERT, UPDATE > et DELETE génére des TRANSACTION implicite, donc qu'un simple ROLLBACK suffit. > > Merci et désolé pour le dérangement... >
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Pour le moment, je ne vais pas changer de cremerie car je suis en formation
(interne = autodidacte) sur .Net et SQL Server, d'où mes questions, parfois
simplettes, mais dont je n'ai pas réussi à obtenir de réponse satisfaisante
en interne. Mais je viens d'apprendre, grace à l'exemple, l'intêret des
transactions explicites.
Merci SQLpro
--
Bye
Yann
"SQLpro [MVP]" a écrit :
Yann a écrit :
> J'avais bien pensé au ROLLBACK, mais j'ai pu lire qu'il fallait démarrer une
> TRANSACTION, ce que mon chef ne veux pas faire.
ha bon, il y a des gens assez stupide pour vous interdire des transactions ?
Si c'est le cas demandez lui comment faire un transfert d'argent de
compte à compte (retrait d'un compte épargne pour alimenter un compte
bancaire) sans transaction, et ce qui se passerais si le serveur plante
entre les deux UPDATE !!!
Je serais vous je changerais de crémerie !
Finalement, en fouillant
> encore un peu plus dans l'aide, j'ai pu lire que l'instruction INSERT, UPDATE
> et DELETE génére des TRANSACTION implicite, donc qu'un simple ROLLBACK suffit.
>
> Merci et désolé pour le dérangement...
>
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Pour le moment, je ne vais pas changer de cremerie car je suis en formation (interne = autodidacte) sur .Net et SQL Server, d'où mes questions, parfois simplettes, mais dont je n'ai pas réussi à obtenir de réponse satisfaisante en interne. Mais je viens d'apprendre, grace à l'exemple, l'intêret des transactions explicites.
Merci SQLpro
-- Bye Yann
"SQLpro [MVP]" a écrit :
Yann a écrit : > J'avais bien pensé au ROLLBACK, mais j'ai pu lire qu'il fallait démarrer une > TRANSACTION, ce que mon chef ne veux pas faire.
ha bon, il y a des gens assez stupide pour vous interdire des transactions ? Si c'est le cas demandez lui comment faire un transfert d'argent de compte à compte (retrait d'un compte épargne pour alimenter un compte bancaire) sans transaction, et ce qui se passerais si le serveur plante entre les deux UPDATE !!!
Je serais vous je changerais de crémerie !
Finalement, en fouillant > encore un peu plus dans l'aide, j'ai pu lire que l'instruction INSERT, UPDATE > et DELETE génére des TRANSACTION implicite, donc qu'un simple ROLLBACK suffit. > > Merci et désolé pour le dérangement... >
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
SQLpro [MVP]
Yann a écrit :
Pour le moment, je ne vais pas changer de cremerie car je suis en formation (interne = autodidacte) sur .Net et SQL Server, d'où mes questions, parfois simplettes, mais dont je n'ai pas réussi à obtenir de réponse satisfaisante en interne. Mais je viens d'apprendre, grace à l'exemple, l'intêret des transactions explicites.
Merci SQLpro
Et pour de plus amples informations sur le sujet, lisez l'article que j'ai écrit : http://sqlpro.developpez.com/cours/sqlaz/techniques/#L1
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Yann a écrit :
Pour le moment, je ne vais pas changer de cremerie car je suis en formation
(interne = autodidacte) sur .Net et SQL Server, d'où mes questions, parfois
simplettes, mais dont je n'ai pas réussi à obtenir de réponse satisfaisante
en interne. Mais je viens d'apprendre, grace à l'exemple, l'intêret des
transactions explicites.
Merci SQLpro
Et pour de plus amples informations sur le sujet, lisez l'article que
j'ai écrit :
http://sqlpro.developpez.com/cours/sqlaz/techniques/#L1
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Pour le moment, je ne vais pas changer de cremerie car je suis en formation (interne = autodidacte) sur .Net et SQL Server, d'où mes questions, parfois simplettes, mais dont je n'ai pas réussi à obtenir de réponse satisfaisante en interne. Mais je viens d'apprendre, grace à l'exemple, l'intêret des transactions explicites.
Merci SQLpro
Et pour de plus amples informations sur le sujet, lisez l'article que j'ai écrit : http://sqlpro.developpez.com/cours/sqlaz/techniques/#L1
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************