2

データベース オブジェクトのスクリプトを生成したい。

  • テーブル
  • ビュー
  • ストアド プロシージャ
  • 機能

以来:

以下の新規インストールではインストールされません。

  • WindowsXP
  • Windows ビスタ
  • ウィンドウズ7

また、再配布可能ではなく、オプションではありません (顧客のマシンで実行されます)。

(編集: SMO は今日の時点で実際に再配布可能であるように見えます。)

システム テーブルのSELECTを関連するスクリプトに変換するソース コードはありますか?


ストアド プロシージャ、ビュー、トリガー、またはユーザー定義関数をスクリプト化する疑似コードから始めます。

String GetStoredProcedureScript(String storedProcedureName)
{
   return GetHelpText(storedProcedureName);
}

String GetViewScript(String viewName)
{
   return GetHelpText(viewName);
}

String GetTriggerScript(String triggerName)
{
   return GetHelpText(storedProcedureName);
}

String GetUserDefinedFunctionScript(String userDefinedFunctionName)
{
   return GetHelpText(userDefinedFunctionName);
}

内部で単一のヘルパー関数を使用できるすべて:

String GetHelpText(String objectName)
{
   String szQuery = 'EXECUTE sp_helptext '+QuotedStr(objectName);


   String sql := '';

   using (Recordset rs = connection.Execute(szQuery))
   {
      while not rs.EOF do
      {
         sql = sql+rs['text'];
         rs.Next;
      }
   }

   return sql;
}

編集:ご指摘いただきありがとうございますservicesharvest316sp_helptext。そのため、これらのものを抽象化するクラスがあります。

4

3 に答える 3

1

これはあなたのための本です。それはあなたが求めたことをするコードジェネレーターを作る方法を説明します。

MySqlの修正バージョンを使用しましたが、それは魅力のように機能しました。 Microsoft.NETでのコード生成

于 2009-11-26T16:08:53.303 に答える
1

sp_helptextを試しましたか?

String szQuery = 'EXEC sp_helptext '+QuotedStr(storedProcedureName)
于 2009-12-09T21:46:13.980 に答える
0

Open DBDiff (ここで参照) は、データベースを比較し、更新スクリプトを生成するための GUI を実装しています。また、コマンド ライン ツールも含まれています。プロジェクトの中身を使用して、CREATE TABLE ステートメントを生成できます。

于 2012-02-09T15:07:14.457 に答える