Como o OP descobriu, o processamento inconsistente ou incompleto de procedimentos armazenados da camada de aplicativo, como o Python, pode ser devido ao desvio das práticas recomendadas de script TSQL.
Como @AaronBetrand destaques nesta Lista de verificação de práticas recomendadas de procedimentos armazenados blog, considere o seguinte, entre outros itens:
- Use de forma explícita e liberal
BEGIN ... END
blocos; - Use
SET NOCOUNT ON
para evitar mensagens enviadas ao cliente para cada ação afetada pela linha, possivelmente interrompendo o fluxo de trabalho; - Use ponto e vírgula para terminadores de instrução.
Exemplo
CREATE PROCEDURE dbo.myStoredProc
AS
BEGIN
SET NOCOUNT ON;
SELECT * FROM foo;
SELECT * FROM bar;
END
GO