Jak OP zjistil, nekonzistentní nebo neúplné zpracování uložených procedur z aplikační vrstvy, jako je Python, může být způsobeno odchylováním se od osvědčených postupů skriptování TSQL.
Jako @AaronBetrand nejdůležitější body v tomto Kontrolní seznam doporučených postupů uložených postupů blog, zvažte mimo jiné následující položky:
- Explicitně a volně používejte
BEGIN ... END
bloky; - Použijte
SET NOCOUNT ON
abyste zabránili odesílání zpráv klientovi pro každou akci ovlivněnou řádkem, což by mohlo přerušit pracovní tok; - Pro ukončení příkazů použijte středníky.
Příklad
CREATE PROCEDURE dbo.myStoredProc
AS
BEGIN
SET NOCOUNT ON;
SELECT * FROM foo;
SELECT * FROM bar;
END
GO