Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Les procédures stockées SQL ne se terminent pas lorsqu'elles sont appelées depuis Python

Comme OP l'a découvert, le traitement incohérent ou incomplet des procédures stockées à partir de la couche d'application comme Python peut être dû à un écart par rapport aux meilleures pratiques de script TSQL.

En tant que @AaronBetrand faits saillants dans cette liste de contrôle des meilleures pratiques des procédures stockées blog, considérez entre autres les éléments suivants :

  • Utilisez explicitement et librement BEGIN ... END blocs ;
  • Utilisez SET NOCOUNT ON pour éviter que des messages soient envoyés au client pour chaque action de ligne affectée, interrompant éventuellement le flux de travail ;
  • Utilisez des points-virgules pour les fins de déclaration.

Exemple

CREATE PROCEDURE dbo.myStoredProc
AS
BEGIN
   SET NOCOUNT ON;

   SELECT * FROM foo;

   SELECT * FROM bar;
END
GO