sql >> データベース >  >> RDS >> Sqlserver

Python から呼び出されたときに SQL ストアド プロシージャが終了しない

    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
      


    1. ステートメントのトリガー内でステートメントの影響を受ける行数を取得する方法

    2. オラクルでblobサイズを見つけるためのdbms_lob.getlength()とlength()

    3. 非構造化コンテンツ:AIと機械学習のための未開発の燃料源

    4. ORA-00972識別子が長すぎますエイリアス列名