sql >> Base de Datos >  >> RDS >> Sqlserver

Los procedimientos almacenados de SQL no finalizan cuando se los llama desde Python

Como descubrió OP, el procesamiento inconsistente o incompleto de los procedimientos almacenados desde la capa de aplicación como Python puede deberse a la desviación de las mejores prácticas de secuencias de comandos TSQL.

Como @AaronBetrand destacados en esta Lista de verificación de mejores prácticas de procedimientos almacenados blog, considere lo siguiente, entre otros elementos:

  • Use explícita y liberalmente BEGIN ... END bloques;
  • Utilice SET NOCOUNT ON para evitar que se envíen mensajes al cliente por cada fila de acción afectada, posiblemente interrumpiendo el flujo de trabajo;
  • Utilice punto y coma para los terminadores de declaraciones.

Ejemplo

CREATE PROCEDURE dbo.myStoredProc
AS
BEGIN
   SET NOCOUNT ON;

   SELECT * FROM foo;

   SELECT * FROM bar;
END
GO