2016-04-07 17 views
0

データベースからすべてをコピーして新しいデータベースに展開する必要がある状況があります。私は現在、既存のデータベースからSSDTにインポートし、プロジェクトを新しいデータベースに公開することでこれを行っています。プログラムでSSDTを使用してデータベースをインポートする

プログラムでこれを実行できる方法があるかどうかを知りたいと思います。理想的には、プロセスにコピー元のデータベースの名前、コピー先のデータベースの名前、プロセスが自動的にインポートとエクスポートを実行するプロセスを用意することが理想的です。

これを行うにはどうすればよいでしょうか?

答えて

8

SSDTは、データ層アプリケーションフレームワーク(DacFXとも呼ばれます)と呼ばれるライブラリによって強化されています。 DacFXはパブリックAPIで、dacpacファイルを抽出して公開することができます。あなたは、ディレクトリ内のVisual StudioまたはSQL Serverの下のプログラムファイルにこのような何かをDacFXのコピーを見つけることができます。

  • C:\プログラムファイル(x86の)\のMicrosoft Visual Studioの14.0 \ Common7 \ IDE \拡張\マイクロソフト\ SQLDB \ DAC \ 130
  • C:\プログラムファイル(x86の)\ Microsoft SQL Serverの\ 130 \ DAC \ binに

あなたがここにDacFXの最新バージョンをダウンロードすることができます https://www.microsoft.com/en-us/download/details.aspx?id=51672

注意をDacFXをインストールすると、それもneです上記のダウンロードページの「システム要件」のセクションにあるSqlSysClrTypesとSqlDomの依存関係をインストールするためのセッサリーです。あなたがそうのように、SqlPackage.exeを使用することができ、dacpacファイルを抽出し、公開することDacFXを使用するには

C:\Program Files (x86)\Microsoft SQL Server\130\DAC\bin\SqlPackage.exe /a:extract /scs:"Data Source=YOURSERVER;Initial Catalog=YOURDB;Integrated Security=true" /tf:C:\temp\yourdb.dacpac

C:\Program Files (x86)\Microsoft SQL Server\130\DAC\bin\SqlPackage.exe /a:publish /tcs:"Data Source=YOURSERVER;Initial Catalog=YOUROTHERDB;Integrated Security=true" /sf:C:\temp\yourdb.dacpac

代わりに、あなたはMicrosoft.SqlServerを使用してプログラムDacFXを使用することができます。 Dac APIのように: using Microsoft.SqlServer.Dac; class Program { static void Main(string[] args) { DacServices ds = new DacServices("Data Source=YOURSERVER;Initial Catalog=YOURDB;Integrated Security=true"); ds.Extract(@"C:\temp\yourdb.dacpac", "YOURDB", "AppName", new System.Version()); using (DacPackage dp = DacPackage.Load(@"C:\temp\yourdb.dacpac")) { ds.Deploy(dp, "YOUROTHERDB"); } } }

+0

Microsoft.SqlServer.Dac APIを使用すると、私にとって最適です。ありがとうございました!!!! – Liv

0

Database Create Script

[2]:私はあなたがプログラム的にそれを行うことができますそれは

+0

ありがとう、しかし、私はこのプログラムでしたいです – Liv

+0

あなたはちょうどどのように実行を見つけるコードのスクリプト。 –

1

を助け願っていますが、私は最も簡単にはレッドゲートのsqlcompareのライセンスを購入するだろうと言うでしょうコード

でこのスクリプトを実行しますそのコマンドライン版を使用しています。

関連する問題