Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Gespeicherte SQL-Prozeduren werden nicht beendet, wenn sie von Python aufgerufen werden

Wie OP herausfand, kann die inkonsistente oder unvollständige Verarbeitung gespeicherter Prozeduren aus der Anwendungsschicht wie Python darauf zurückzuführen sein, dass von den bewährten Methoden der TSQL-Skripterstellung abgewichen wird.

Als @AaronBetrand Highlights in dieser Best Practices-Checkliste für gespeicherte Prozeduren Blog, berücksichtigen Sie unter anderem Folgendes:

  • Verwenden Sie ausdrücklich und großzügig BEGIN ... END Blöcke;
  • Verwenden Sie SET NOCOUNT ON um zu vermeiden, dass Nachrichten für jede betroffene Zeile an den Client gesendet werden und möglicherweise den Arbeitsablauf unterbrechen;
  • Verwenden Sie Semikolons für Anweisungsabschlusszeichen.

Beispiel

CREATE PROCEDURE dbo.myStoredProc
AS
BEGIN
   SET NOCOUNT ON;

   SELECT * FROM foo;

   SELECT * FROM bar;
END
GO