sql >> Database >  >> RDS >> Sqlserver

Opgeslagen SQL-procedures worden niet voltooid wanneer ze worden aangeroepen vanuit Python

Zoals OP ontdekte, kan inconsistente of onvolledige verwerking van opgeslagen procedures van applicatielaag zoals Python te wijten zijn aan het afwijken van best practices van TSQL-scripting.

Als @AaronBetrand hoogtepunten in deze Checklist voor beste praktijken voor opgeslagen procedures blog, overweeg dan onder andere het volgende:

  • Gebruik expliciet en ruimhartig BEGIN ... END blokken;
  • Gebruik SET NOCOUNT ON om te voorkomen dat er berichten naar de klant worden gestuurd voor elke actie met een beïnvloede rij, waardoor de workflow mogelijk wordt onderbroken;
  • Gebruik puntkomma's voor terminators van uitspraken.

Voorbeeld

CREATE PROCEDURE dbo.myStoredProc
AS
BEGIN
   SET NOCOUNT ON;

   SELECT * FROM foo;

   SELECT * FROM bar;
END
GO



  1. Haal de laatste invoeg-ID op met Oracle 11g met behulp van JDBC

  2. Twee welsprekende collecties samenvoegen en sorteren?

  3. Is er een IF EXISTS-test voor een gekoppelde server?

  4. Waarom selecteert deze query slechts één rij?