sys.dm_db_persisted_sku_features (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

データベース エンジンの一部の機能により、情報がデータベース ファイルに格納される方法が変わります。 これらの機能は、SQL Server の特定のエディションでのみ使用できます。 これらの機能を含むデータベースは、それらをサポートしていない SQL Server のエディションに移動できません。 動的管理ビューを sys.dm_db_persisted_sku_features 使用して、現在のデータベースで有効になっているエディション固有の機能を一覧表示します。

列名 データ型 説明
feature_name sysname データベースで有効になっているが、SQL Server のすべてのエディションでサポートされていない機能の外部名。 この機能は、データベースを SQL Server のすべての使用可能なエディションに移行する前に削除する必要があります。
feature_id int 機能に関連付けられている機能 ID。 単に情報を示すためだけに特定されます。 サポートされていません。 今後の互換性は保証されません。.

アクセス許可

SQL Server 2019 (15.x) 以前のバージョンの場合、データベースに対する VIEW DATABA Standard Edition STATE 権限が必要です。

SQL Server 2022 (16.x) 以降のバージョンでは、データベースに対する VIEW DATABA Standard Edition PERFORMANCE STATE 権限が必要です。

解説

データベース内の特定のエディションによって制限される可能性のある機能がない場合、ビューは行を返しません。

sys.dm_db_persisted_sku_features は、特定の SQL Server エディションに制限されている次のデータベース変更機能を一覧表示できます。

  • ChangeCapture: データベースで変更データ キャプチャが有効になっていることを示します。 変更データ キャプチャを削除するには、sys.sp_cdc_disable_db ストアド プロシージャを使用します。 詳細については、「変更データ キャプチャについて (SQL Server)」を参照してください。

  • ColumnStoreIndex: 少なくとも 1 つのテーブルに列ストア インデックスがあることを示します。 この機能をサポートしていない SQL Server のエディションにデータベースを移動できるようにするには、DROP INDEX または ALTER INDEX ステートメントを使用して列ストア インデックスを削除します。 詳細については、「列ストア インデックス」を参照してください

  • 圧縮: 少なくとも 1 つのテーブルまたはインデックスがデータ圧縮または vardecimal ストレージ形式を使用することを示します。 この機能をサポートしていない SQL Server のエディションにデータベースを移動できるようにするには、ALTER TABLE または ALTER INDEX ステートメントを使用してデータ圧縮を削除します。 vardecimal ストレージ形式を削除するには、ステートメントを sp_tableoption 使用します。 詳細については、「 Data Compression」を参照してください。

  • MultipleFSContainers: データベースが複数の FILESTREAM コンテナーを使用することを示します。 データベースには、複数のコンテナー (ファイル) を含む FILESTREAM ファイル グループがあります。 詳細については、「 FILESTREAM (SQL Server)」を参照してください。

  • InMemoryOLTP: データベースがインメモリ OLTP を使用することを示します。 データベースにはMEMORY_OPTIMIZED_DATAファイル グループがあります。 詳細については、「 インメモリ OLTP (インメモリ最適化)」を参照してください。

  • パーティション分割。 データベースにパーティション テーブル、パーティション インデックス、パーティション構成、またはパーティション関数が含まれていることを示します。 データベースを Enterprise または Developer 以外の SQL Server のエディションに移動できるようにするには、テーブルを 1 つのパーティションに変更するだけでは不十分です。 パーティション テーブルを削除する必要があります。 テーブルにデータが含まれている場合は、SWITCH PARTITION を使用して各パーティションを非パーティション テーブルに変換します。 次に、パーティション テーブル、パーティション構成、およびパーティション関数を削除します。

  • TransparentDataEncryption。 透過的なデータ暗号化を使用してデータベースが暗号化されることを示します。 透過的なデータ暗号化を削除するには、ALTER DATABA Standard Edition ステートメントを使用します。 詳細については、「Transparent Data Encryption (TDE)」を参照してください。

Note

SQL Server 2016 (13.x) Service Pack 1 以降では、TransparentDataEncryption を除くこれらの機能は複数の SQL Server エディションで使用でき、Enterprise または Developer エディションのみに限定されません。

特定のエディションでのみ使用できる機能がデータベースで使用されているかどうかを確認するには、データベースで次のステートメントを実行します。

SELECT feature_name
FROM sys.dm_db_persisted_sku_features;
GO

Windows の SQL Server の各エディションでサポートされる機能のリストについては、以下を参照してください。

Linux の SQL Server の各エディションでサポートされる機能の一覧については、以下を参照してください。