web-dev-qa-db-ja.com

SQL Serverデータのスクリプトを取得する方法は?

私は、SQL ServerからのMySQLダンプに類似した何かをする方法を探しています。テーブルを選択し、スキーマとデータをエクスポートできる必要があります(または、SQL Server Management Studioを介してスキーマをエクスポートし、何らかの方法でデータを個別にエクスポートできます)。

このデータは、GUID /一意識別子およびその他の列タイプを維持する必要があるため、SQL Serverに戻り、SQL Serverに戻ることができる必要があります。

誰もがこれに適したツールを知っていますか?

205
Jared

完全を期すために、次の方法も見つけました。 Microsoft SqlServer Database Publishing Wizard

4
Jared

SQL Server Management Studioから、データベースを右クリックして以下を選択できます。

Tasks -> Generate Scripts

次に、ウィザードを続行します。スクリプトオプションを選択するように求められたら、必ず「スクリプトデータ」をTRUEに設定してください。

SQL Server 2008 R2

alt text

参考文献:

315
Daniel Vassallo

SQL Server Management Studio

これは、このタスクを実行するための最良のツールです。データベースから任意のテーブルを構築し、それらのテーブルにデータを挿入するスクリプトを生成できます(ただし、選択したテーブルのすべてのデータをエクスポートする必要がある場合)。

これを行うには、次の手順を実行します。

  1. データベースを右クリックし、[タスク]> [スクリプトの生成]を選択します

  2. スクリプトの生成および公開ウィザードで、[特定のデータベースオブジェクトを選択]オプションを選択します

  3. [テーブル]ツリーを展開し、スキームとデータをエクスポートするすべてのテーブルを選択して、[次へ]をクリックします

  4. 次の画面で、スクリプトの保存方法を選択し(出力タイプを「特定の場所にスクリプトを保存」として設定する必要があります)、右上隅の[詳細設定]ボタンをクリックします

  5. 新しく開いたウィンドウの[全般]セクションにある[スクリプトを作成するデータの種類]という設定があり、これを[スキームとデータ]に設定して[OK]をクリックします

  6. [次へ]をクリックし、エクスポートの概要を確認して、もう一度[次へ]をクリックします。これにより、選択した宛先にスクリプトが生成されます。

データベースを復元するには、新しいデータベースを作成し、生成されたスクリプトの最初の行をUSE [Your.New.Database.Name]に変更してから実行します。これで、新しいデータベースには、元のデータベースから選択したすべてのテーブルとデータが含まれます。

52
bluntfakie

SQL Management Studio 2012でこのオプションを見つけるのは非常に困難でしたが、ようやく見つかりました。このオプションは、下の画面の[詳細設定]ボタンに隠れています。

私はこれがファイル生成のための高度なオプションを想定しているだけだと常に思っていました、それは次のことなので、MSの誰かはこの場合のUIデザインが本当に悪いことがわかります。 HTH私のようにこのスレッドに来る人。

SQL Management Studio 2012

37
SilverSideDown

すべてのテーブル行のスクリプトを作成する場合は、ダニエルヴァッサロの説明に従って「スクリプトを生成」を選択してください。ここで間違えることはありません

それ以外の場合 ApexSQL Script やSSMS Toolpackなどのサードパーティツールを使用して、いくつかの前処理、選択的スクリプトなどを含むより高度なスクリプトを作成します。

24
Maisie John

SSMS Tool Pack をご覧ください。 Management Studio 2005および2008で動作します。挿入ステートメントを生成するオプションがあり、システム間で少量のデータを移動するのに役立ちます。

このオプションでは、DDLを個別にスクリプト化する必要があります。

7
CTKeane

SqlPubWiz.exe(私にとっては、C:\ Program Files(x86)\ Microsoft SQL Server\90\Tools\Publishing\1.2>にあります)

ウィザードの引数なしで実行します。コマンドラインで実行する引数を指定します。

SqlPubWiz.exe script -C "<ConnectionString>" <OutputFile>
5
Greg

これはすでに回答済みですが、警告の言葉を述べるためにここに来ています。最近、周期的な外部キー参照を持つクライアントからデータベースを受け取りました。 SQL Serverスクリプトジェネレーターは、循環参照を持つデータベースのデータの生成を拒否します。

1
Vaelen

BCPはデータをファイルにダンプし、SQL Server Management Studioでテーブルを右クリックし、[スクリプトテーブル]、[作成先]、[ファイル...]の順に選択すると、完全なテーブルスクリプトが生成されます。

BCP情報
https://web.archive.org/web/1/http://blogs.techrepublic%2ecom%2ecom/datacenter/?p=319
http://msdn.Microsoft.com/en-us/library/aa174646%28SQL.80%29.aspx

1
KM.