sql >> Databasteknik >  >> RDS >> Sqlserver

SQL-lagrade procedurer slutförs inte när de anropas från Python

Som OP upptäckte kan inkonsekvent eller ofullständig bearbetning av lagrade procedurer från applikationslager som Python bero på att man avvikit från bästa praxis för TSQL-skript.

Som @AaronBetrand höjdpunkter i denna Checklist för bästa praxis för lagrade procedurer blogg, överväg bland annat följande:

  • Använd BEGIN ... END uttryckligen och frikostigt block;
  • Använd SET NOCOUNT ON för att undvika meddelanden som skickas till klienten för varje rad som påverkas, vilket eventuellt avbryter arbetsflödet;
  • Använd semikolon för satsavslutningar.

Exempel

CREATE PROCEDURE dbo.myStoredProc
AS
BEGIN
   SET NOCOUNT ON;

   SELECT * FROM foo;

   SELECT * FROM bar;
END
GO



  1. återställ root-lösenordet med fel mysql-konfiguration

  2. hur infogar man bild eller bild i Oracle-databasen?

  3. Beställa artiklar i MySQL med en fast lista?

  4. Produktaggregat i PostgreSQL