SQL Server オブジェクトとバージョンの DAC サポート

データ層アプリケーション (DAC) では、よく使用されるデータベース エンジン オブジェクトがサポートされます。

このトピックの内容

  • サポート対象の SQL Server オブジェクト

  • SQL Server の各バージョンでのデータ層アプリケーション サポート

  • データの配置に関する制限事項

  • 配置操作に関するその他の考慮事項

サポート対象の SQL Server オブジェクト

作成時または編集時にデータ層アプリケーションで指定できるのは、サポート対象オブジェクトのみです。DAC でサポートされていないオブジェクトを含む既存のデータベースから DAC の抽出、登録、およびインポートを行うことはできません。SQL Server 2012 では、DAC の以下のオブジェクトがサポートされています。

DATABASE ROLE

FUNCTION: インライン テーブル値

FUNCTION: 複数ステートメント テーブル値

FUNCTION: スカラー

INDEX: クラスター化

INDEX: 非クラスター化

INDEX: 空間

INDEX: 一意

LOGIN

権限

ロールのメンバーシップ

SCHEMA

Statistics

STORED PROCEDURE: Transact-SQL

シノニム

TABLE: CHECK 制約

TABLE: 照合順序

TABLE: 列 (計算列も含む)

TABLE: 制約、DEFAULT

TABLE: 制約、FOREIGN KEY

TABLE: 制約、INDEX

TABLE: 制約、PRIMARY KEY

TABLE: 制約、UNIQUE

TRIGGER: DML

TYPE: HIERARCHYID、GEOMETRY、GEOGRAPHY

TYPE: ユーザー定義データ型

TYPE: ユーザー定義テーブル型

USER

VIEW

SQL Server の各バージョンでのデータ層アプリケーション サポート

SQL Server のバージョンによって、DAC 操作に対するサポート レベルが異なります。特定のバージョンの SQL Server でサポートされるすべての DAC 操作は、そのバージョンのすべてのエディションでサポートされます。

データベース エンジンのインスタンスでは、次の DAC 操作がサポートされています。

  • サポートされているすべてのバージョンの SQL Server で、エクスポートと抽出がサポートされています。

  • Windows Azure SQL データベース と、SQL Server 2012 および SQL Server 2008 R2 のすべてのバージョンで、すべての操作がサポートされています。

  • SQL Server 2008 Service Pack 2 (SP2) 以降と SQL Server 2005 SP4 以降で、すべての操作がサポートされています。

DAC Framework は、DAC パッケージとエクスポート ファイルのビルドおよび処理用のクライアント側ツールで構成されています。以下の製品には、DAC Framework が含まれています。

  • SQL Server 2012 には DAC Framework 3.0 が含まれており、これによってすべての DAC 操作がサポートされます。

  • SQL Server 2008 R2 SP1 と Visual Studio 2010 SP1 には DAC Framework 1.1 が含まれており、これによって、エクスポートとインポートを除くすべての DAC 操作がサポートされます。

  • SQL Server 2008 R2 と Visual Studio 2010 には DAC Framework 1.0 が含まれており、これによって、エクスポート、インポート、およびインプレース アップグレードを除くすべての DAC 操作がサポートされます。

  • SQL Server または Visual Studio の以前のバージョンのクライアント ツールでは、DAC 操作はサポートされていません。

あるバージョンの DAC Framework でビルドされた DAC パッケージまたはエクスポート ファイルは、それ以前のバージョンの DAC Framework では処理できません。たとえば、SQL Server 2012 クライアント ツールを使用して抽出された DAC パッケージは、SQL Server 2008 R2 クライアント ツールでは配置できません。

あるバージョンの DAC Framework でビルドされた DAC パッケージまたはエクスポート ファイルは、それ以降の任意のバージョンの DAC Framework で処理できます。たとえば、SQL Server 2008 R2 クライアント ツールを使用して抽出された DAC パッケージは、SQL Server 2008 R2 SP1 または SQL Server 2012 のクライアント ツールを使用して配置できます。

データの配置に関する制限事項

SQL Server 2012 PCU1 の DAC Framework データ配置エンジンでは、次に示す忠実性の制限事項に注意してください。この制限事項は、DAC Framework の操作である、.dacpac ファイルの配置または公開、および .bacpac ファイルのインポートに適用されます。

  1. sql_variant 列内の特定の条件および基本データ型のメタデータが失われます。影響を受ける場合には、"DAC Framework によって配置される場合、sql_variant 列内で使用される特定のデータ型の特定のプロパティは保持されません。" というメッセージを含む警告が表示されます。

    • MONEY、SMALLMONEY、NUMERIC、DECIMAL 基本型: 有効桁数は保持されません。

      • DECIMAL/NUMERIC 基本型 (有効桁数 38): "TotalBytes" sql_variant メタデータは常に 21 に設定されます。
    • すべてのテキストの基本型: データベースの既定の照合順序がすべてのテキストに適用されます。

    • BINARY 基本型: 最大長プロパティが保持されません。

    • TIME、DATETIMEOFFSET 基本型: 有効桁数は常に 7 に設定されます。

  2. sql_variant 列内のデータが失われます。影響を受ける場合には、"3 より大きなスケールを持つ sql_variant DATETIME2 列の値が DAC Framework によって配置されると、データが失われます。配置中、DATETIME2 値は 3 と等しいスケールに制限されます。" というメッセージを含む警告が表示されます。

    • DATETIME2 基本型 (小数点以下桁数が 4 以上): 小数点以下桁数は 3 と等しくなるよう制限されます。
  3. sql_variant 列内の条件が次の場合は配置操作が失敗します。影響を受ける場合には、"DAC Framework のデータ制限のため操作に失敗しました。" というメッセージを含むダイアログが表示されます。

    • DATETIME2、SMALLDATETIME、および DATE 基本型: 値が DATETIME の範囲外の場合 (たとえば、年が 1753 より小さい場合)。

    • DECIMAL、NUMERIC 基本型: 値の有効桁数が 28 より大きい場合。

配置操作に関するその他の考慮事項

DAC Framework のデータ配置操作に関する次の考慮事項に注意してください。

  • 抽出/エクスポート - DAC Framework を使用してデータベースからパッケージを作成する操作 (.dacpac ファイルの抽出や .bacpac ファイルのエクスポートなど) では、これらの制限事項は適用されません。パッケージのデータは、ソース データベース内のデータの完全な忠実性を表しています。これらの条件のいずれかがパッケージに存在する場合、抽出/エクスポートのログには、前述のメッセージを使用して問題の概要が含まれます。これは、作成したパッケージでデータ配置の問題が発生した可能性があることをユーザーに警告するためです。また、"これらの制限は、DAC Framework によって作成された DAC パッケージに格納されたデータ型および値の忠実性には影響しません。DAC パッケージをデータベースに配置した結果のデータ型および値に対してのみ適用されます。" という概要メッセージもログに表示されます。影響を受けるデータとこの制限の回避方法の詳細については、このトピックを参照してください。

  • 配置/公開/インポート - DAC Framework を使用してパッケージをデータベースに配置する操作 (.dacpac ファイルの配置または公開、.bacpac ファイルのインポートなど) では、これらの制限事項が適用されます。ターゲット データベースとなるデータでは、パッケージ内のデータが完全な忠実性を表していない可能性があります。配置/インポートのログには、問題が発生したインスタンスごとに、前述のメッセージが含まれます。操作は、エラーによってブロックされます (前のカテゴリ 3 を参照) が、引き続き他の警告が表示されます。

    このシナリオで影響を受けるデータと、配置/公開/インポート操作のこの制限の回避方法の詳細については、このトピックを参照してください。

  • 回避策 – 抽出操作およびエクスポート操作では、完全な忠実性を備えた BCP データ ファイルを .dacpac ファイルまたは .bacpac ファイルに書き込みます。制限を回避するには、SQL Server BCP.exe コマンド ライン ユーティリティを使用して、DAC パッケージからターゲット データベースに完全な忠実性を備えたデータを配置してください。

関連項目

概念

データ層アプリケーション