Microsoft SQL ServerデータベースをSQLスクリプトにダンプする方法は?


125

Microsoft SQL ServerデータベースをSQLスクリプトにエクスポートする方法はありますか?

mysqldumpと同様に動作し、データベース名を取得し、すべてのテーブル、ストアドプロシージャを再作成し、すべてのデータを再挿入する単一のスクリプトを作成するものを探しています。

私はhttp://vyaskn.tripod.com/code.htm#insertsを見てきましたが、最終的なスクリプトを作成するための単一ステップで機能するもの(データだけでなく)を再作成するものが理想です。


@Mattはい、データをエクスポートしません。そのため、提案したスクリプトと組み合わせる必要があると述べました。ただし、このメソッドは正しい順序でスクリプトを作成します。
フリオセザール

実際、Mangement Studio 2008では、「データのエクスポート」オプションをオンにするだけで、スクリプトにはスキーマと挿入ステートメントの両方が含まれます。
user24161


@MattSheppardは、答えの1つを受け入れることを検討してください
030

回答:


111

SQL Server Management Studioでデータベースを右クリックし、[タスク] / [スクリプトの生成]を選択します。ウィザードに従うと、外部キーに従って正しい順序でデータ構造を再作成するスクリプトが表示されます。「スクリプトオプションの設定」というタイトルのウィザードのステップで「詳細設定」を選択し、「スクリプトへのデータの種類」オプションを「スキーマとデータ」に変更します。

ヒント:最後の手順で[新しいクエリウィンドウへのスクリプト]を選択すると、その方法ではるかに高速に動作します。


18
高度なオプションに入り、スキーマだけでなくデータもスクリプト化するように指示することを忘れないでください。
RomanSt

2
@romkynsはすべての投票に値します!「スクリプト化するデータのタイプ」は正確なオプション名です。「スキーマとデータ」を選択します。
solidau

2
SSMSから生成されたスクリプトの主な問題は、依存関係を考慮するために正しく順序付けられていないことです。これは、手動でこれを行うことができる小規模なデータベースでは問題になりませんが、データベースが50個を超えるオブジェクトを取得する場合は間違いなく問題です。これまでのところ、ApexSQLスクリプトを使用してこれに成功しました。これはプレミアムツールですが、試用モードで使用して作業を完了できます。Red Gateにも同様のツールがあると思います。
デビッドスミザーズ

34

Sql Server Database Publishing Wizardをお試しください。ただし、依存関係のためにスクリプトを1回で実行するように順序を変更する必要がありますが、スキーマとデータが含まれます。

2005 SQL XMOオブジェクトがインストールされていない場合、ウィザードを実行するとエラーが発生します。Microsoft SQL Server 2005管理オブジェクトコレクションが必要です。


5
実際には、すべての制約を削除し、スキーマを作成し、データを挿入し、最後に制約を再作成するため、スクリプトの順序を変更する必要はありません。
ダニエルシルベイラ

素晴らしい、それはかなりきちんとしています
ビープ音

これは優れたツールですが、SQL Server 2015のみをサポートしています。2008以降はどうですか?
ナムG VU

12

SQL Dumperは非常に便利だと思いました。無料なので、試してみることができます。データベースのテーブルと列、ビュー、さらにカスタムクエリの結果をSQL挿入ステートメントとして選択できます。


最後の安定バージョンは、ストアドプロシージャでは機能しません。
VMAtm

1
最後のバージョンは、download.cnet.com
SQL


6

DBSourceToolsを試してください。ソースデータベースをスクリプトアウトし、ターゲットデータベースに再展開するように設計されています。スキーマとデータのスクリプトを作成します。


6

推奨されるソリューションは、SQL 2000および2005でのみ機能します。SQL2008でこれを実行する場合は、

他のプラグインなしでSQL 2008でそれを行うことができます。データベースを右クリックして、「タスク->スクリプトの生成...」を選択します。データベースとバックアップするものを選択します。[次へ]をクリックし、[スクリプトデータ]をtrueに設定します。

リンクの詳細ドキュメント:

http://blog.sqlauthority.com/2011/05/07/sql-server-2008-2008-r2-create-script-to-copy-database-schema-and-all-the-objects-data-schema-ストアドプロシージャ関数、トリガー、テーブル、ビュー、制約、およびその他のすべてのデータベースオブジェクト/



2

SQL Serverデータベース公開ウィザードは、実際にそれを行う最適な方法のようです。これの問題は、Windows 7で実行できないように見えることです。古いコンピューターを使用する必要がありました。良い面では、2000などの古いSQL Serverバージョンで動作します。

新しいSQLバージョンおよびオペレーティングシステムの場合、このソフトウェアは次の情報を調べる価値があります。http//sqlbackupandftp.com/


0

Ombeltは、MS SQLサーバーDBをエクスポートするための優れたツールを作成します。www.ombelt.com

他のDBのダンプ機能によく似ています。

私のために働く。


0

Microsoft SQL Server Schema Dumpプロジェクト(mssql-schema-dumpGitHubのツール)を確認してください。

使用法: mssqldump -h data-source-host -u username -p password [-d path/for/files] [-c] [-s] [-a] [-b DB1[,DB2[,DB3]]]

エクスポートは以下をサポートします。

  • DB:スキーマ、ユーザータイプ、ユーザーテーブルタイプ、トリガー、フルテキストカタログ、フルテキストストップリスト、ストアドプロシージャ、関数
  • DB.Tables:スキーマ、トリガー、インデックス、DRI、統計
  • DB.Views:スキーマ、トリガー、インデックス、DRI、統計
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.