sql >> データベース >  >> Database Tools >> SSMS

sp_executesqlを使用してSSMS2012がSPのスクリプトを作成しないようにする方法

    ストアドプロシージャは独自のバッチである必要があるため、動的SQLなしではこれを行うことはできません。したがって、次のように言うことはできません:

    IF <some condition>
      <start a new batch>
    

    同じバッチでそれを維持する唯一の方法は、sp_executesqlを使用することです 。

    DROPをスクリプト化する場合 およびCREATE 同時に、オブジェクトの存在をチェックせずに実行します。これにより、次のことが可能になります:

    DROP PROCEDURE ...;
    GO
    CREATE PROCEDURE ...;
    GO
    

    DROPかどうかは誰が気にしますか 失敗しますか? (スクリプトを作成しただけなので、そうすべきではありません!)

    可能性がある別のシステム用にこれをスクリプト化する場合 オブジェクトを持っていると、DROPのエラーメッセージが表示されます そうでない場合でも、CREATE 引き続き発生するため、DROPは無視してかまいません。 エラー。本当に必要な場合は、DROPを手動でラップできます TRY/CATCHのステートメント でも必要ないと思います。

    多くの手順でこれを行う必要がある場合、または問題のないエラーを生成しないプロセスが本当に必要な場合は、Management Studioの基本的なスクリプトオプションを放棄し、サードパーティのツールを使用することをお勧めします。彼らはあなたがまだ遭遇していない問題の多くをすでに扱っているでしょうが、そうするでしょう。私はこれについてブログを書きました:

    http:// bertrandaaron.wordpress.com/2012/04/20/re-blog-the-cost-of-reinventing-the-wheel/



    1. PHPMyAdminを使用して2つのテーブル間にリレーションを作成するにはどうすればよいですか?

    2. Drool6ワークベンチとJavaアプリケーションの統合

    3. .FRMからMYI、MYDテーブルを復元する方法

    4. FirebirdデータベースをSQLにエクスポートする