SQL Server オブジェクトとバージョンの DAC サポートDAC Support For SQL Server Objects and Versions

適用対象:○SQL Server XAzure SQL DatabaseXAzure SQL Data Warehouse XParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

データ層アプリケーション (DAC) では、よく使用される データベース エンジンDatabase Engine オブジェクトがサポートされます。A data-tier application (DAC) supports the most commonly used データベース エンジンDatabase Engine objects.

このトピックの内容In This Topic

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

作成時または編集時にデータ層アプリケーションで指定できるのは、サポート対象オブジェクトのみです。Only supported objects can be specified in a data-tier application as it is being authored or edited. DAC でサポートされていないオブジェクトを含む既存のデータベースから DAC の抽出、登録、およびインポートを行うことはできません。You cannot extract, register, or import a DAC from an existing database that contains objects that are not supported in a DAC. SQL Server 2017SQL Server 2017 では、DAC の以下のオブジェクトがサポートされています。 supports the following objects in a DAC.

DATABASE ROLEDATABASE ROLE FUNCTION: インライン テーブル値FUNCTION: Inline Table-valued
FUNCTION: 複数ステートメント テーブル値FUNCTION: Multistatement Table-valued FUNCTION: スカラーFUNCTION: Scalar
INDEX: クラスター化INDEX: Clustered INDEX: 非クラスター化INDEX: Non-clustered
INDEX: 空間INDEX: Spacial INDEX: 一意INDEX: Unique
LOGINLOGIN アクセス許可Permissions
ロールのメンバーシップRole Memberships SCHEMASCHEMA
統計Statistics STORED PROCEDURE: Transact-SQLSTORED PROCEDURE: Transact-SQL
シノニムSynonyms TABLE: CHECK 制約TABLE: Check Constraint
TABLE: 照合順序TABLE: Collation TABLE: 列 (計算列も含む)TABLE: Column, including computed columns
TABLE: 制約、DEFAULTTABLE: Constraint, Default TABLE: 制約、FOREIGN KEYTABLE: Constraint, Foreign Key
TABLE: 制約、INDEXTABLE: Constraint, Index TABLE: 制約、PRIMARY KEYTABLE: Constraint, Primary Key
TABLE: 制約、UNIQUETABLE: Constraint, Unique TRIGGER: DMLTRIGGER: DML
TYPE: HIERARCHYID、GEOMETRY、GEOGRAPHYTYPE: HIERARCHYID, GEOMETRY, GEOGRAPHY TYPE: ユーザー定義データ型TYPE: User-defined Data Type
TYPE: ユーザー定義テーブル型TYPE: User-defined Table Type USERUSER
VIEWVIEW

SQL Server の各バージョンでのデータ層アプリケーション サポートData-tier Application Support by the Versions of SQL Server

SQL ServerSQL Server のバージョンによって、DAC 操作に対するサポート レベルが異なります。The versions of SQL ServerSQL Server have different levels of support for DAC operations. 特定のバージョンの SQL ServerSQL Server でサポートされるすべての DAC 操作は、そのバージョンのすべてのエディションでサポートされます。All of the DAC operations supported by a version of SQL ServerSQL Server are supported by all editions of that version.

データベース エンジンDatabase Engine のインスタンスでは、次の DAC 操作がサポートされています。Instances of the データベース エンジンDatabase Engine support the following DAC operations:

  • サポートされているすべてのバージョンの SQL ServerSQL Serverで、エクスポートと抽出がサポートされています。Export and extract are supported on all supported versions of SQL ServerSQL Server.

  • Azure SQL データベースAzure SQL Database と、 SQL Server 2014 (12.x)SQL Server 2014 (12.x)SQL Server 2012 (11.x)SQL Server 2012 (11.x)、および SQL Server 2008 R2SQL Server 2008 R2のすべてのバージョンで、すべての操作がサポートされています。All operations are supported on Azure SQL データベースAzure SQL Database and all versions of SQL Server 2014 (12.x)SQL Server 2014 (12.x), SQL Server 2012 (11.x)SQL Server 2012 (11.x), and SQL Server 2008 R2SQL Server 2008 R2.

  • SQL Server 2008:SQL Server 2008 Service Pack 2 (SP2) 以降と SQL Server 2005SQL Server 2005 SP4 以降で、すべての操作がサポートされています。All operations are supported on SQL Server 2008:SQL Server 2008 Service Pack 2 (SP2) or later, and SQL Server 2005SQL Server 2005 SP4 or later.

    DAC Framework は、DAC パッケージとエクスポート ファイルのビルドおよび処理用のクライアント側ツールで構成されています。The DAC Framework comprises the client-side tools for building and processing DAC packages and export files. 以下の製品には、DAC Framework が含まれています。The following products include the DAC Framework

  • SQL Server 2014 (12.x)SQL Server 2014 (12.x) および SQL Server 2012 (11.x)SQL Server 2012 (11.x) には DAC Framework 3.0 が含まれており、これによってすべての DAC 操作がサポートされます。 and SQL Server 2012 (11.x)SQL Server 2012 (11.x) includes DAC Framework 3.0, which supports all DAC operations.

  • SQL Server 2008 R2SQL Server 2008 R2 SP1 と Visual Studio 2010 SP1 には DAC Framework 1.1 が含まれており、これによって、エクスポートとインポートを除くすべての DAC 操作がサポートされます。 SP1 and Visual Studio 2010 SP1 included DAC Framework 1.1, which supports all DAC operations except export and import.

  • SQL Server 2008 R2SQL Server 2008 R2 と Visual Studio 2010 には DAC Framework 1.0 が含まれており、これによって、エクスポート、インポート、およびインプレース アップグレードを除くすべての DAC 操作がサポートされます。 and Visual Studio 2010 included DAC Framework 1.0, which supports all DAC operations except export, import, and in—place upgrade.

  • SQL Server または Visual Studio の以前のバージョンのクライアント ツールでは、DAC 操作はサポートされていません。The client tools from earlier versions of SQL Server or Visual Studio do not support DAC operations.

    あるバージョンの DAC Framework でビルドされた DAC パッケージまたはエクスポート ファイルは、それ以前のバージョンの DAC Framework では処理できません。A DAC package or export file built with one version of the DAC Framework cannot be processed by an earlier version of the DAC Framework. たとえば、 SQL Server 2014 (12.x)SQL Server 2014 (12.x) クライアント ツールを使用して抽出された DAC パッケージは、 SQL Server 2008 R2SQL Server 2008 R2 クライアント ツールでは配置できません。For example, a DAC package extracted using the SQL Server 2014 (12.x)SQL Server 2014 (12.x) client tools cannot be deployed using the SQL Server 2008 R2SQL Server 2008 R2 client tools.

    あるバージョンの DAC Framework でビルドされた DAC パッケージまたはエクスポート ファイルは、それ以降の任意のバージョンの DAC Framework で処理できます。A DAC package or export file built with one version of the DAC Framework can be processed by any later version of the DAC Framework. たとえば、 SQL Server 2008 R2SQL Server 2008 R2 クライアント ツールを使用して抽出された DAC パッケージは、 SQL Server 2008 R2SQL Server 2008 R2 SP1 以降のクライアント ツールを使用して配置できます。For example, a DAC package extracted using the SQL Server 2008 R2SQL Server 2008 R2 client tools can be deployed using either the SQL Server 2008 R2SQL Server 2008 R2 SP1 or higher client tools.

データ配置の制限Data Deployment Limitations

SQL Server 2012 SP1 の DAC Framework データ配置エンジンには、忠実性に関してここで述べるような制限があることに注意してください。Note these fidelity limitations in the DAC Framework data deployment engine in SQL Server 2012 SP1. 制限が適用される DAC Framework 操作は、.dacpac ファイルの展開またはパブリッシュ、および .bacpac ファイルのインポートです。The limitations apply to the following DAC Framework actions: deploy or publish a .dacpac file, and import a .bacpac file.

  1. sql_variant 列内の特定の条件と基本データ型によるメタデータの消失。Loss of metadata for certain conditions and base types within sql_variant columns. 影響を受ける場合は、 "DAC Framework によって配置される場合、sql_variant 列内で使用される特定のデータ型の特定のプロパティは保持されません。" という警告メッセージが表示されます。In the affected cases, you will see a warning with the following message: Certain properties on certain data types used within a sql_variant column are not preserved when deployed by the DAC Framework.

    • MONEY、SMALLMONEY、NUMERIC、DECIMAL の各基本データ型: 有効桁数は保持されません。MONEY, SMALLMONEY, NUMERIC, DECIMAL base types: Precision is not preserved.

      • 有効桁数 38 桁の DECIMAL/NUMERIC 基本データ型: "TotalBytes" という sql_variant のメタデータは常に 21 に設定されます。DECIMAL/NUMERIC base types with precision 38: the “TotalBytes” sql_variant metadata is always set to 21.
    • すべてのテキスト基本データ型: データベースの既定の照合順序がすべてのテキストに適用されます。All text base types: The database default collation is applied for all text.

    • BINARY 基本データ型: 最大長プロパティは保持されません。BINARY base types: Max length property is not preserved.

    • TIME、DATETIMEOFFSET の各基本データ型: 有効桁数は常に 7 桁に設定されます。TIME, DATETIMEOFFSET base types: Precision is always set to 7.

  2. sql_variant 列内のデータの消失。Loss of data within sql_variant columns. 影響を受ける場合は、"3 より大きなスケールを持つ sql_variant DATETIME2 列の値が DAC Framework によって配置されると、データが失われます。配置中、DATETIME2 値は 3 と等しいスケールに制限されます。" という警告メッセージが表示されます。In the affected case, you will see a warning with the following message: There will be data loss when a value in a sql_variant DATETIME2 column with scale greater than 3 is deployed by the DAC Framework. The DATETIME2 value is limited to a scale equal to 3 during deployment.

    • スケールが 3 を超える DATETIME2 基本データ型: スケールが 3 に制限されます。DATETIME2 base type with scale greater than 3: scale is limited to equal 3.
  3. sql_variant 列内で以下に述べる条件が成立すると、配置操作が失敗します。Deployment operation fails for the following conditions within sql_variant columns. 影響を受ける場合は、 "DAC Framework のデータ制限のため操作に失敗しました。" というメッセージが表示されます。In the affected cases, you will see a dialog with the following message: Operation failed due to data limitations in the DAC Framework.

    • DATETIME2、SMALLDATETIME、DATE の各基本データ型: 値が DATETIME の範囲外である場合 (年が 1753 未満であるなど)。DATETIME2, SMALLDATETIME and DATE base types: If the value is outside of DATETIME range – for example, the year is less than 1753.

    • DECIMAL、NUMERIC の各基本データ型: 値の有効桁数が 28 を超える場合。DECIMAL, NUMERIC base type: when precision of the value is greater than 28.

配置操作に関するその他の注意点Additional Considerations for Deployment Actions

DAC Framework のデータ配置操作に関して次の点に注意してください。Note the following considerations for DAC Framework data deployment actions:

  • 抽出、エクスポート - DAC Framework を使用してデータベースからパッケージを作成する操作 (たとえば、.dacpac ファイルの抽出や .bacpac ファイルのエクスポート) では、ここで述べた制限は適用されません。Extract/Export - On actions that use the DAC Framework to create a package from a database – for example, extract a .dacpac file, export a .bacpac file - these limitations do not apply. パッケージのデータは、ソース データベースのデータを完全に忠実に再現しています。The data in the package is a full-fidelity representation of the data in the source database. ここで述べた条件のいずれかがパッケージに存在する場合、抽出およびエクスポート ログに、上で述べたメッセージによって問題の概要が記録されます。If any of these conditions are present in the package, the extract/export log will contain a summary of the issues via the messages noted above. これは、作成したパッケージが潜在的なデータ配置の問題を抱えていることをユーザーに警告するためです。This is to warn the user of potential data deployment issues with the package they created. ログには、"これらの制限は、DAC Framework によって作成された DAC パッケージに格納されたデータ型および値の忠実性には影響しません。DAC パッケージをデータベースに配置した結果のデータ型および値に対してのみ適用されます。" という概要メッセージも記録されます。影響を受けるデータおよび、この制限の対処方法の詳細については、こちらのトピックをご覧ください。The user will also see the following summary message in the log: These limitations do not affect the fidelity of the data types and values stored in the DAC package created by the DAC Framework; they only apply to the data types and values resulting from deploying a DAC package to a database. For more information about the data that is affected and how to work around this limitation, seethis topic.

  • 配置、パブリッシュ、インポート - DAC Framework を使用してパッケージをデータベースに配置する操作 (たとえば、.dacpac ファイルの配置またはパブリッシュ、.bacpac ファイルのインポート) では、ここで述べた制限が適用されます。Deploy/Publish/Import - On actions that use the DAC Framework to deploy a package to a database, like to deploy or publish a .dacpac file, and import a .bacpac file, these limitations do apply. 対象データベースに作成されるデータが、パッケージのデータを完全に忠実に再現していない可能性があります。The data that results in the target database may not contain a full-fidelity representation of the data in the package. 配置およびインポートのログには、問題が発生したすべてのインスタンスに関して、上記のメッセージが記録されます。The Deploy/Import log will contain a message, noted above, for every instance the issue is encountered. 操作はエラーによってブロックされます (上記の分類 3 を参照)。しかし、他の警告では続行されます。The operation will be blocked by errors – see category 3 above - but will proceed with the other warnings.

    この場合に影響を受けるデータおよび、配置、パブリッシュ、インポートの各操作時におけるこの制限の対処方法の詳細については、 こちらのトピックを参照してください。For more information about the data that is affected in this scenario and how to work around this limitation for deploy/publish/import actions, see this topic.

  • 回避策 – 抽出およびエクスポート操作では、完全に忠実な BCP データ ファイルが .dacpac ファイルまたは .bacpac ファイルに書き出されます。Workarounds – Extract and export operations will write full-fidelity BCP data files into the .dacpac or .bacpac files. 制限を回避するには、SQL Server の BCP.exe コマンド ライン ユーティリティを使用して、完全に忠実なデータを DAC パッケージから対象データベースに配置します。To avoid limitations, use the SQL Server BCP.exe command line utility to deploy full-fidelity data to a target database from a DAC package.

参照See Also

データ層アプリケーションData-tier Applications