16

Sql Server Data Tools for Visual Studio では、Sql Server プロジェクトを作成し、データベースの構造をインポートできます。これは非常にうまく機能します。

データのインポートも可能ですか?たとえば、いくつかの型を持つ Type テーブルがあるとします。このデータを Sql Server プロジェクトに入れたいので、公開するとデータも公開されます。

私が把握できた最も近い方法は、Sql Server Object Explorer を使用してデータのスクリプトを作成し、そのスクリプトをプロジェクトに手動で追加することです。

Sql Server Data Tools のデモを見たとき、プロジェクトの公開が示されましたが、コピーと貼り付けを使用してデータベースにデータを取得しました。確かにもっと良い方法があります。

編集 数年後、私は最終的にこれを理解しました.2つのタイプのエクスポートがあります.1. DACPAK - 構造のみを含みます.2. データと構造を含むBACBAK.

SSMS のいずれかから作成できます。 1. DACPAK: データベースを選択し、右クリックして [タスク] -> [データ層アプリの抽出] を選択します。2. データベースを選択し、右クリックして [タスク] -> [データ層アプリのエクスポート] を選択します。

4

2 に答える 2

11

数年後、私はついにこれを理解しました: エクスポートには2つのタイプがあります:

  1. DACPAC - 構造のみを含む
  2. データと構造を含む BACPAC。

SSMS から次のいずれかを作成できます。

  1. DACPAC: データベースを選択し、右クリックして [タスク] -> [データ層アプリの抽出] を選択します。
  2. BACPAC: データベースを選択し、右クリックして [タスク] -> [データ層アプリのエクスポート] を選択します。
于 2016-05-11T16:19:08.330 に答える
10

あなたが尋ねたように、これはVisual Studioからのものではありませんが、回避策かもしれません。データベースが開発サーバーに存在する場合は、おそらくSqlPackage.exe ExportExtractアクションを使用できます。

輸出用

デフォルトでは、すべてのテーブルのデータが .bacpac ファイルに含まれます。

SqlPackage.exe エクスポート アクションは、ライブ データベースを SQL Server または Windows Azure SQL データベースから BACPAC パッケージ (.bacpac ファイル) にエクスポートします。デフォルトでは、すべてのテーブルのデータが .bacpac ファイルに含まれます。必要に応じて、データをエクスポートするテーブルのサブセットのみを指定できます。エクスポート アクションの検証により、テーブルのサブセットがエクスポート用に指定されている場合でも、ターゲット データベース全体に対する Windows Azure SQL データベースの互換性が保証されます。

sqlpackage.exe /action:Export /TargetFile:"test.bacpac" 
    /sourceDatabasename:test 
    /sourceservername:.\testserver

bacpacファイル をインポートできますhttps://msdn.microsoft.com/en-us/library/hh710052.aspx

抽出用

ユーザー テーブル データを使用して DACPAC を作成します。

sqlpackage.exe /action:Extract /TargetFile:"test.dacpac" 
    /sourceDatabasename:test 
    /sourceservername:".\testserver"
    /p:ExtractAllTableData=true

SqlPackage.exe を使用したくない場合この記事は古いものですが、次の 3 つの回避策が有効です。

1) SSMS オブジェクト エクスプローラーの [サーバー]/管理/データ層アプリケーション/[アプリケーション名] ノードの下にある SSMS の「データ層アプリケーションのアップグレード...」ウィザードを使用して、同じ .dacpac ファイルを再展開します。アップグレード ウィザードには、.dacpac ファイル内の展開前および/または展開後のスクリプトを実行するためのチェックボックス オプションが表示されます。デプロイ前およびデプロイ後の両方のスクリプト オプションを有効にしてからアップグレードを実行すると、期待どおりの結果が得られます。

2) SSMS クエリ ウィンドウ、SQLCMD.exe、または simliar を使用して、DACPAC の展開前および/または展開後の T-SQL スクリプト ファイルを手動で実行します。これには、DACPAC 作成者が DACPAC ファイルと一緒に展開前/展開後のスクリプトを出荷する必要があります。または、展開前/展開後のスクリプトは、Microsoft DacUnpack.exe ユーティリティまたは ZIP ファイル ユーティリティ (ファイル拡張子を .dacpac から .zip に変更した後) を使用して抽出できます。

3) MSBuild.exe (v4.0.30319.1 以降) または Visual Studio 2010 Premium SP1 (以降) を使用して、"SQL Server データ層アプリケーション" プロジェクト ファイルを展開します。(例: "msbuild /Target:Deploy DeploymentDemo.dbproj")。

于 2015-10-31T18:32:41.073 に答える