La chose la plus simple à faire est d'encapsuler votre code dans une transaction, puis d'exécuter chaque lot de code T-SQL ligne par ligne.
Par exemple,
Begin Transaction
-Do some T-SQL queries here.
Rollback transaction -- OR commit transaction
Si vous souhaitez intégrer la gestion des erreurs, vous pouvez le faire en utilisant un BLOC TRY ... CATCH. Si une erreur se produit, vous pouvez annuler la tranasction dans le bloc catch.
Par exemple:
USE AdventureWorks;
GO
BEGIN TRANSACTION;
BEGIN TRY
-- Generate a constraint violation error.
DELETE FROM Production.Product
WHERE ProductID = 980;
END TRY
BEGIN CATCH
SELECT
ERROR_NUMBER() AS ErrorNumber
,ERROR_SEVERITY() AS ErrorSeverity
,ERROR_STATE() AS ErrorState
,ERROR_PROCEDURE() AS ErrorProcedure
,ERROR_LINE() AS ErrorLine
,ERROR_MESSAGE() AS ErrorMessage;
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
END CATCH;
IF @@TRANCOUNT > 0
COMMIT TRANSACTION;
GO
Voir le lien suivant pour plus de détails.
http://msdn.microsoft.com/en-us/library/ms175976.aspx
J'espère que cela aide mais s'il vous plaît laissez-moi savoir si vous avez besoin de plus de détails.
Je veux ajouter un point sur lequel vous pouvez également (et devriez si ce que vous écrivez est complexe) ajouter une variable de test à restaurer si vous êtes en mode test. Ensuite, vous pouvez exécuter le tout en même temps. Souvent, j'ajoute également du code pour voir les résultats avant et après de diverses opérations, surtout s'il s'agit d'un script complexe.
Exemple ci-dessous:
la source