none
作成したストアドプロシージャの内容を定期的にエクスポート(バックアップ)したい RRS feed

  • 質問

  • データベースの中に 50 個ほどのストアドプロシージャを作成しました。

    [タスク] - [スクリプトの生成] を選択することで 50 個すべてのストアドプロシージャの内容を一つのファイル(拡張子 sql) に出力することができますが、これを手動ではなく定期的に実施させたいと考えています。

    そのような方法がございましたら、ご教示いただけないでしょうか。

    2015年10月9日 12:06

回答

  • ちょっと出先で手元に環境が無く確認できないのですが、以下の様なクエリで定義をまとめて取得できませんでしょうか?

    SELECT
      sysobjects.name,
      sys.sql_modules.definition
    FROM sys.sql_modules
    LEFT JOIN sysobjects
      ON sysobjects.id = sys.sql_modules.object_id
    WHERE sysobjects.type ='P'
    ORDER BY sysobjects.name
    ;

    クエリの実行結果をテキストファイルに出力する方法は色々ありますので、そこはお好みでよろしいかと思います。

    参考
    https://technet.microsoft.com/ja-jp/library/ms175081(v=sql.120).aspx


    MCITP(Database Developer/Database Administrator)


    • 編集済み nagino - 引退エンジニア 2015年10月9日 13:46
    • 回答としてマーク yumi08 2015年10月9日 14:43
    • 回答としてマークされていない yumi08 2015年10月9日 14:44
    • 回答としてマーク yumi08 2015年10月9日 14:46
    2015年10月9日 13:46

すべての返信

  • ちょっと出先で手元に環境が無く確認できないのですが、以下の様なクエリで定義をまとめて取得できませんでしょうか?

    SELECT
      sysobjects.name,
      sys.sql_modules.definition
    FROM sys.sql_modules
    LEFT JOIN sysobjects
      ON sysobjects.id = sys.sql_modules.object_id
    WHERE sysobjects.type ='P'
    ORDER BY sysobjects.name
    ;

    クエリの実行結果をテキストファイルに出力する方法は色々ありますので、そこはお好みでよろしいかと思います。

    参考
    https://technet.microsoft.com/ja-jp/library/ms175081(v=sql.120).aspx


    MCITP(Database Developer/Database Administrator)


    • 編集済み nagino - 引退エンジニア 2015年10月9日 13:46
    • 回答としてマーク yumi08 2015年10月9日 14:43
    • 回答としてマークされていない yumi08 2015年10月9日 14:44
    • 回答としてマーク yumi08 2015年10月9日 14:46
    2015年10月9日 13:46
  • nagino さん、ご回答ありがとうございます!

    ご教示いただいた内容で期待した結果が得られることを確認いたしました。

    今日中に確認できて良かったです。ありがとうございました!!

    2015年10月9日 14:45