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
プレ>