Както OP установи, непоследователната или непълна обработка на съхранени процедури от приложния слой като Python може да се дължи на отклонение от най-добрите практики на TSQL скриптове.
Като @AaronBetrand акценти в този Контролен списък за най-добри практики за съхранени процедури блог, помислете за следното сред другите елементи:
- Изрично и щедро използвайте
BEGIN ... END
блокове; - Използвайте
SET NOCOUNT ON
за избягване на съобщения, изпращани до клиента за всяко действие, засегнато от ред, което евентуално прекъсва работния процес; - Използвайте точка и запетая за терминатори на изрази.
Пример
CREATE PROCEDURE dbo.myStoredProc
AS
BEGIN
SET NOCOUNT ON;
SELECT * FROM foo;
SELECT * FROM bar;
END
GO