467

SQL Server 2008 Management Studioを使用していて、別のデータベースサーバーに移行したいテーブルがあります。

データをSQLスクリプトへの挿入としてエクスポートするオプションはありますか?

4

11 に答える 11

748

オブジェクトエクスプローラーのSSMSで、データベースを右クリックし、右クリックして[タスク]、[スクリプトの生成]の順に選択します。

これにより、単一またはすべてのテーブルのスクリプトを生成できます。オプションの1つは「スクリプトデータ」です。これをTRUEに設定すると、ウィザードはデータのINSERT INTO()ステートメントを使用してスクリプトを生成します。

2008 R2または2012を使用している場合は、別の名前で呼ばれます。この下のスクリーンショットを参照してください

代替テキスト

2008 R2以降(例:2012)

「スクリプトするデータのタイプ」を選択します。これは、「データのみ」、「スキーマとデータ」、または「スキーマのみ」(デフォルト)です。

ここに画像の説明を入力してください

そして、Codeplex(ソースを含む)に「SSMSアドイン」パッケージがあります。これは、ほぼ同じ機能といくつかの機能(クイック検索など)を約束します。

代替テキスト

于 2009-10-04T09:02:18.937 に答える
137

ここまでmarc_sの指示に従った後、過度に明白な頭脳がないために...

オブジェクトエクスプローラーのSSMSで、データベースを右クリックし、[タスク]、[スクリプトの生成]の順に選択します。

...次に、「はじめに、オブジェクトの選択、スクリプトオプションの設定、概要、およびスクリプトの保存または公開」が表示されたウィザード画面が表示されます。下部に[前へ]、[次へ]、[終了]、[キャンセル]ボタンがあります。

[スクリプトオプションの設定]ステップで、[詳細]をクリックして、オプションを含むページを取得する必要があります。次に、Ghlouwが述べたように、「スクリプト化するデータのタイプ」を選択して利益を上げます。

高度なボタンが赤で強調表示されています!1 !!

于 2012-10-23T14:08:00.983 に答える
54

SQLServer 2008R2を使用する場合は、データの種類をスクリプトフィールドに設定する必要があります。

ここに画像の説明を入力してください

于 2013-05-29T02:01:52.143 に答える
37

SQL Server 2008 R2を実行している場合、上記のmarc_sが少し変更されたため、SSMSでこれを行うための組み込みオプションがあります。Script data = true彼の図に示されているように選択する代わりに"Types of data to script"、「テーブル/ビューオプション」グループのすぐ上に呼ばれる新しいオプションがあります。ここでは、スクリプトデータのみ、スキーマとデータ、またはスキーマのみを選択できます。チャームのように機能します。

于 2011-08-02T08:09:57.340 に答える
18

2019年頃、新しいv18を使用しているので、他の人を助けるためにスクリーンショットを更新するだけです。

[DB]を右クリックします。[タスク]>[スクリプトの生成]

ここでは、特定のテーブルを選択するか、デフォルトのすべてを使用できます。

ここでは、特定のテーブルを選択するか、デフォルトのすべてを使用できます。私自身のニーズのために、私はただ1つのテーブルを示しています。

次に、出力ファイルなどを選択できる「スクリプトオプション」があります。上記の複数の回答と同様に(ここでも、新しいv18.4 SQL Server Management Studioの古い回答を削除しています)、本当に必要なものです。 [詳細]ボタンの下にあります。私自身の目的のために、私はデータだけが必要です。

ファイルへの出力を含む一般的な出力オプション。 データを含む高度なオプション!

最後に、実行前にレビューの要約があります。実行後、操作のステータスのレポートが表示されます。 レビュー概要。

于 2020-04-21T16:53:51.593 に答える
10

SQlサーバーMngStudio2016の場合:

ここに画像の説明を入力してください

于 2018-06-28T12:26:47.950 に答える
8

コマンドラインバージョンを探している人のために、Microsoftはこれを行うためにリリースmssql-scripterしました:

$ pip install mssql-scripter

# Generate DDL scripts for all database objects and DML scripts (INSERT statements)
# for all tables in the Adventureworks database and save the script files in
# the current directory
$ mssql-scripter -S localhost -d AdventureWorks -U sa --schema-and-data \
                 -f './' --file-per-object

dbatools.ioは、PowerShellに基づくはるかにアクティブなプロジェクトであり、これを実現するためのGet-DbaDbTableおよびExport-DbaDbTableDataコマンドレットを提供します。

PS C:\> Get-DbaDbTable -SqlInstance sql2016 -Database MyDatabase \
           -Table 'dbo.Table1', 'dbo.Table2' | 
        Export-DbaDbTableData -Path C:\temp\export.sql
于 2017-10-17T00:08:48.977 に答える
2

また、SQL Server ManagementStudio2008の「データスクリプターアドイン」を次のサイトから確認することもできます。

http://www.mssql-vehicle-data.com/SSMS


それらの機能リスト:

  • これはSSMS2008で開発されたものであり、現時点では2005バージョンではサポートされていません(まもなく!)

  • MSSQLおよびMySQL構文のT-SQLにデータをすばやくエクスポートする

  • CSV、TXT、XMLもサポートされています!SQLが提供する可能性、パワー、スピードを最大限に活用します。

  • AccessまたはExcelがスクリプト作業を行うのを待たずに、数分かかる場合があります。SQLServerにスクリプト作業を任せて、データのエクスポートからすべての推測作業を取り除いてください。

  • 迅速なバックアップ、DDL操作などのためにデータ出力をカスタマイズします...

  • テーブル名とデータベーススキーマを必要に応じて迅速かつ効率的に変更します

  • 列名をエクスポートするか、名前なしでデータを生成します。

  • スクリプト化する個々の列を選択できます。

  • データのサブセットを選択できます(WHERE句)。

  • データの順序を選択できます(ORDER BY句)。

  • データ操作を必要とする汚れたデータベースのデバッグ操作のための優れたバックアップユーティリティ。実験中にデータを失わないでください。その場でデータを操作します!

于 2012-04-22T01:51:24.553 に答える
2

上記のすべては素晴らしいですが、あなたがする必要がある場合

  1. 結合を使用して複数のビューとテーブルからデータをエクスポートする
  2. さまざまなRDBMSの挿入ステートメントを作成します
  3. 任意のRDBMSから任意のRDBMSにデータを移行する

次のトリックが唯一の方法です。

まず、ソースデータベースのコマンドラインクライアントからスプールファイルを作成する方法、または結果セットをエクスポートする方法を学びます。次に、宛先データベースでSQLステートメントを実行する方法を学びます。

最後に、ソースデータベースでSQLスクリプトを実行して、宛先データベースの挿入ステートメント(およびその他のステートメント)を作成します。例えば

SELECT '-- SET the correct schema' FROM dual;
SELECT 'USE test;' FROM dual;
SELECT '-- DROP TABLE IF EXISTS' FROM dual;
SELECT 'IF OBJECT_ID(''table3'', ''U'') IS NOT NULL DROP TABLE dbo.table3;' FROM dual;
SELECT '-- create the table' FROM dual;
SELECT 'CREATE TABLE table3 (column1 VARCHAR(10), column2 VARCHAR(10));' FROM dual;

SELECT 'INSERT INTO table3 (column1, column2) VALUES (''', table1.column1, ''',''', table2.column2, ''');' FROM table1 JOIN table2 ON table2.COLUMN1 = table1.COLUMN1;

上記の例は、テーブルのない選択にデュアルを使用する必要があるOracleのデータベース用に作成されました。

結果セットには、宛先データベースのスクリプトが含まれます。

于 2015-07-06T11:11:56.010 に答える
1

これは、カーソルを使用してソーステーブルを反復処理するデータ移行スクリプトを作成する例です。

SET NOCOUNT ON;  
DECLARE @out nvarchar(max) = ''
DECLARE @row nvarchar(1024)
DECLARE @first int = 1

DECLARE cur CURSOR FOR 
    SELECT '(' + CONVERT(CHAR(1),[Stage]) + ',''' + [Label] + ''')'
    FROM CV_ORDER_STATUS
    ORDER BY [Stage]

PRINT 'SET IDENTITY_INSERT dbo.CV_ORDER_STATUS ON'
PRINT 'GO'

PRINT 'INSERT INTO dbo.CV_ORDER_STATUS ([Stage],[Label]) VALUES';

OPEN cur
FETCH NEXT FROM cur
    INTO @row

WHILE @@FETCH_STATUS = 0
BEGIN
    IF @first = 1
        SET @first = 0
    ELSE
        SET @out = @out + ',' + CHAR(13);

    SET @out = @out + @row

    FETCH NEXT FROM cur into @row
END

CLOSE cur
DEALLOCATE cur

PRINT @out

PRINT 'SET IDENTITY_INSERT dbo.CV_ORDER_STATUS OFF'
PRINT 'GO'
于 2016-09-09T20:23:14.850 に答える
0

たくさん検索した後、それは私のベストショットでした:

大量のデータがあり、コンパクトでエレガントなスクリプトが必要な場合は、SSMSツールパックを試してください。

これは、すべてのselectステートメントの和集合を生成して、アイテムをターゲットテーブルに挿入し、トランザクションを非常にうまく処理します。

スクリーンショット

于 2018-03-22T14:29:28.403 に答える