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