2015-01-05 28 views
9

SQL Server 2014データベースを2012年に変換するツールはありますか?2012年のSQL Server 2014のバックアップ

スクリプトを生成しました生成されたスクリプトのデータが大きすぎるため、SQL Server Management Studioが実行しなかったため、スキーマとデータの両方が必要です。

答えて

8

、サードパーティ製のツールを使用せずに、SQL Serverのの下位バージョンにデータベースを移行するための二つのオプション基本的にあります。

  • はスクリプトを生成します(ない本当に大量のデータに適しています)
  • カスタムスクリプトとBCPまたはインポート/エクスポートウィザード
  • SQL Server Integration Services述べたように(データベース転送タスク)

最初のオプションは、あなたのケースでは適していません。

2番目のオプションは、データベースの構造を単純にスクリプト化し、インポート/エクスポートウィザードを使用してデータを1つずつコピーします。データベースに外部キー制約がある場合は、すべてのテーブルにデータを設定するまで制約を無効にすることをお勧めします。 This blog postはどのようにこれを行うことができるかを詳細に説明しています。

第三の選択肢は、基本的に先サーバー上のオブジェクトを作成するためにSMOを使用して、データを転送するSISS Transfer Database Taskを使用しています。これは、異なるバージョンのSQL Serverインスタンス間でデータベースを移行する際に推奨される方法です。 SSISには、Visual Studio用のSQL Serverデータツール - ビジネスインテリジェンス(SSDT-BI)がインストールされている必要があります。 SQL Server 2012以前は、Business Intelligence Development Studio(BIDS)と呼ばれていました。あなたは、Visual Studio、SSDT-BI/BIDS is included in the SQL Server installationを持っていない場合は

+0

SSIS転送データベースタスクはどのように使用できますか? Microsoft SQL ServerデータツールはVisual Studioにインストールする必要がありますか?または... – Azarsa

+0

私はSSDT-BIとBIDSに関するいくつかのリンクで私の答えを更新しました。 – Dan

3

スクリプトを使用しますが、Management Studioで実行する代わりに、軽量のsqlcmdユーティリティを使用してください。私の知る限り

http://msdn.microsoft.com/es-es/library/ms162773.aspx

+1

データベースに何百万行ものテーブルが含まれている場合、生成されるスクリプトは実用的に大きくなります(数十または数百GB)。 sqlcmdユーティリティを使用しても、このような巨大なスクリプトを実行するのは苦労でしょう。 – Dan

+0

@ダン私は問題なくこの方法で数ギガバイトのデータを持つファイルをロードしました。 – Oscar

+0

さて、私はそれを試みたことがないと認めなければなりません。しかし、通常、スクリプトはデータベース自体の2〜3倍のスペースを占有しますが、これは環境に十分なディスク容量がないと問題になる可能性があります。これは明らかにスクリプトを小さな部分に分割することで解決できますが、例えば[SSIS Transfer Database Task](http://msdn.microsoft.com/en-us/)を使用するよりもはるかに多くの作業のように思えます。 /library/ms141204.aspx)。 – Dan

1

まあ、ダンの二番目のオプションは動作しません:VS2013のためのSSDT-BIをインストールし、データベース転送タスクを設定した後には、ソース・データベース・インスタンスのバージョンが低いかのバージョンに等しくなるように持っていると言うが接続先のデータベースインスタンス:2014年から2012年(または私のケースでは2008R2)からの移行は不可能です。

関連する問題