4

すべてのデータベース オブジェクト (テーブル、ストアド プロシージャ、ビュー、インデックス/インデックス、制約など) の DDL を SQL Server 2005+ から引き出すためのコマンド ラインまたはスクリプト ソリューションを探しています。GUI ツールは重要ではありません。

Oracle の DBMS_METADATA に最も匹敵する組み込みツールが優先されます。また、DDL を取得するための Oracle と同じくらい単純なソリューションの好み - たとえば、ワンライナー:

    SELECT DBMS_METADATA.GET_DDL('TABLE', 'MY_TABLE') FROM DUAL

注: SQL Server 2005 のプロシージャを取得するのは簡単に思えますが、他のオブジェクト (テーブルなど) について同様のものへの参照が見つかりません。

    選択定義
    FROM Sys.sql_modules
    WHERE object_id = OBJECT_ID('MyProc')

前もって感謝します!

4

2 に答える 2

4

Transact-SQL 言語ではサポートされていません。クライアント ライブラリ (SMO) はScripterオブジェクトを使用してこれを行うことができます。 http://msdn.microsoft.com/en-us/library/ms162153.aspxの例を参照してください。PowerShell の SMO をスクリプト ソリューションとして使用できます。

SQL Management Studio にもオプションがあり (データベースを右クリックし、[タスク] に移動し、[スクリプトの生成] を選択します)、内部で SMO スクリプターを使用します。

于 2009-10-02T22:00:36.477 に答える
2

私はSMOscriptを作成しました。これは、SMO を使用してすべてのデータベース オブジェクトの DDL ファイルを生成するコマンド ライン ツールです。

于 2009-10-28T06:52:18.633 に答える