Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Procedimentos armazenados do SQL não terminando quando chamados do Python


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