次の方法で共有


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

データ層アプリケーション (DAC) は、最も一般的に使用されるデータベース エンジン オブジェクトをサポートします。

このトピックの内容

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

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

DATABASE ROLE FUNCTION: インライン テーブル値
FUNCTION: 複数ステートメント テーブル値 FUNCTION: スカラー
INDEX: クラスター化 INDEX: Nonclustered
INDEX: 空間 INDEX: 一意
LOGIN アクセス許可
ロールのメンバーシップ SCHEMA
統計 STORED PROCEDURE: Transact-SQL
Synonyms 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 でサポートされています。

  • すべての操作は、Azure SQL Database と SQL Server 2014、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 2014 と SQL Server 2012 には、すべての DAC 操作をサポートする DAC Framework 3.0 が含まれています。

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

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

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

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

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

データ配置の制限

SQL Server 2012 SP1 の DAC Framework データ配置エンジンには、忠実性に関してここで述べるような制限があることに注意してください。 制限が適用される DAC Framework 操作は、.dacpac ファイルの展開またはパブリッシュ、および .bacpac ファイルのインポートです。

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

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

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

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

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

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

    • スケールが 3 を超える DATETIME2 基本データ型: スケールが 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 パッケージから対象データベースに配置します。

参照

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