122 votes

La meilleure façon de travailler avec les transactions dans MS SQL Server Management Studio

Disons que j'ai une instruction SQL qui est syntaxiquement et sémantiquement correct de sorte qu'il s'exécute.

Dans Management Studio (ou tout autre outil de requête) comment puis-je tester SQL, et si je remarque que quelque chose s'était cassé, la restauration (dans une requête distincte?)

221voto

John Sansom Points 20087

Le easisest chose à faire est d'envelopper votre code dans une transaction, et ensuite exécuter chaque lot de T-SQL code 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 d'erreur, vous pouvez le faire en utilisant un BLOC TRY...CATCH. Si une erreur se produit, vous pouvez alors restaurer le 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

Espérons que cela aide, mais s'il vous plaît laissez-moi savoir si vous avez besoin de plus de détails.

Cheers,John

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X