sys.dm_db_persisted_sku_features (Transact-SQL)

SQL Server 数据库引擎的某些功能改变了数据库引擎在数据库文件中存储信息的方式。 这些功能仅限于特定 SQL Server 版本。 不能将包含这些功能的数据库迁移到不支持这些功能的 SQL Server 版本。使用 sys.dm_db_persisted_sku_features 动态管理视图可列出当前数据库中启用的所有特定于版本的功能。

列名

数据类型

说明

feature_name

sysname

在数据库中启用但并非所有 SQL Server 版本都支持的功能的外部名称。 必须先删除此功能,然后才能将数据库迁移到 SQL Server 的所有可用版本。

feature_id

int

与功能关联的功能 ID。 标识为仅供参考。不提供支持。不保证以后的兼容性。.

权限

需要对数据库拥有 VIEW DATABASE STATE 权限。

注释

如果数据库未使用受版本限制的任何功能,该视图将不返回任何行。

sys.dm_db_persisted_sku_features 可能会列出仅限于 SQL Server Enterprise 或 Developer Edition 的下列数据库更改功能:

  • **ColumnStoreIndex。**指示至少一个表具有 xVelocity 内存优化的列存储索引。 要使数据库能够迁移到 Enterprise 或 Developer 以外的 SQL Server 版本,请使用 DROP INDEXALTER INDEX 语句删除列存储索引。

    适用范围:SQL Server(SQL Server 2012 到当前版本)。

  • **压缩。**指示至少一个表或索引使用数据压缩或 vardecimal 存储格式。 若要使数据库能够迁移到 SQL Server Enterprise 或 Developer 以外的版本,请使用 ALTER TABLEALTER INDEX 语句删除数据压缩。若要删除 vardecimal 存储格式,请使用 sp_tableoption 语句。

  • **分区。**指示数据库包含已分区表、已分区索引、分区方案或分区函数。 若要使数据库能够移动到 SQL Server Enterprise 或 Developer 以外的版本,将表修改到单个分区上是不够的。 必须删除相应的已分区表。 如果该表包含数据,请使用 SWITCH PARTITION 将每个分区转换成无分区表。 然后删除已分区表、分区方案和分区函数。

  • **TransparentDataEncryption。**指示使用透明数据加密对数据库进行加密。 若要删除透明数据加密,请使用 ALTER DATABASE 语句。 有关详细信息,请参阅透明数据加密 (TDE)

  • **ChangeCapture。**指示数据库已启用变更数据捕获。 若要删除变更数据捕获,请使用 sys.sp_cdc_disable_db 存储过程。

若要确定数据库是否使用仅限于特定版本的任何功能,请对数据库执行下面的语句:

SELECT feature_name FROM sys.dm_db_persisted_sku_features ;
GO

请参阅

参考

动态管理视图和函数 (Transact-SQL)

与数据库有关的动态管理视图 (Transact-SQL)