Rollback et script

Le
pierre
Bonjour,
J'ai une question sur les script SQL sur une base SQL server 2005.

J'ai une base de données avec pleins de tables liées entre elle dans tous
les sens. Je suis en train de faire un mega script pour modifier des données
(suppression, ajout, modif) . Bien sur, il faut que j'ai ajouté des données
dans des tables pour en ajouter d'autre dans d'autres table.Je serai même
obligé de casser des clefs et d'en refaire d'autres.

N'étant pas completement certain de ce que j'écris, J'aimerai le vérifier.
Ainsi, j'aimerai savoir s'il est possible de lancer mon script et de faire
un "Rollback" général (que tout fonctionne ou que ca plante)?
Si oui, que dois-je ajouter à mon script pour faire cela

Merci de vos conseil.
Pierre
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Rudi Bruchez
Le #11865941
Bonjour,

pierre a écrit:
dans des tables pour en ajouter d'autre dans d'autres table.Je serai même
obligé de casser des clefs et d'en refaire d'autres.

N'étant pas completement certain de ce que j'écris, J'aimerai le vérifier.
Ainsi, j'aimerai savoir s'il est possible de lancer mon script et de faire
un "Rollback" général (que tout fonctionne ou que ca plante)?
Si oui, que dois-je ajouter à mon script pour faire cela



Tu ne devrais jamais avoir à supprimer des contraintes et les recréer
ensuite. A quoi servent les contraintes si on fait ça ? Il faut insérer
les données dans l'ordre.

Tu peux bien sûr tout encapsuler dans un transaction : BEGIN TRANSACTION
au début. Ensuite : ROLLBACK TRANSACTION pour faire un rollback.
Tu peux utiliser un block TRY CATCH (je suppose que tu es en SQL Server
2005)
Tu peux imbriquer les transactions, mais le ROLLBACK s'effectuera
toujours sur la transaction la plus externe.


--
Rudi Bruchez
Consultant independant, MCDBA, MCITP, MCT
http://www.babaluga.com/
http://rudi.developpez.com/
pierre
Le #11865931
D'accord, j'ai plus de billes.
Merci.
Je vais regarder BEGIN/ROLLBACK TRANSACTION pour la syntaxe.
+a
Pierre



"Rudi Bruchez" a écrit :

Bonjour,

pierre a écrit:
> dans des tables pour en ajouter d'autre dans d'autres table.Je serai même
> obligé de casser des clefs et d'en refaire d'autres.
>
> N'étant pas completement certain de ce que j'écris, J'aimerai le vérifier.
> Ainsi, j'aimerai savoir s'il est possible de lancer mon script et de faire
> un "Rollback" général (que tout fonctionne ou que ca plante)?
> Si oui, que dois-je ajouter à mon script pour faire cela

Tu ne devrais jamais avoir à supprimer des contraintes et les recréer
ensuite. A quoi servent les contraintes si on fait ça ? Il faut insérer
les données dans l'ordre.

Tu peux bien sûr tout encapsuler dans un transaction : BEGIN TRANSACTION
au début. Ensuite : ROLLBACK TRANSACTION pour faire un rollback.
Tu peux utiliser un block TRY CATCH (je suppose que tu es en SQL Server
2005)
Tu peux imbriquer les transactions, mais le ROLLBACK s'effectuera
toujours sur la transaction la plus externe.


--
Rudi Bruchez
Consultant independant, MCDBA, MCITP, MCT
http://www.babaluga.com/
http://rudi.developpez.com/



Publicité
Poster une réponse
Anonyme