sys.dm_db_persisted_sku_features (Transact-SQL)
适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics 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 DATABASE STATE 权限。
对于 SQL Server 2022(16.x)及更高版本,需要对数据库具有 VIEW DATABASE PERFORMANCE STATE 权限。
注解
如果没有可能受数据库中特定版本限制的功能,则视图不返回任何行。
sys.dm_db_persisted_sku_features
可将以下数据库更改功能列为限制为特定的 SQL Server 版本:
ChangeCapture:指示数据库已启用变更数据捕获。 若要删除更改数据捕获,请使用 sys.sp_cdc_disable_db 存储过程。 有关详细信息,请参阅关于变更数据捕获 (SQL Server)。
ColumnStoreIndex:指示至少有一个表具有列存储索引。 若要使数据库移动到不支持此功能的 SQL Server 版本,请使用 DROP INDEX 或 ALTER INDEX 语句删除列存储索引。 有关详细信息,请参阅 列存储索引。
压缩:指示至少有一个表或索引使用数据压缩或 vardecimal 存储格式。 若要启用数据库移动到不支持此功能的 SQL Server 版本,请使用 ALTER TABLE 或 ALTER INDEX 语句删除数据压缩。 若要删除 vardecimal 存储格式,请使用
sp_tableoption
该语句。 有关详细信息,请参阅 Data Compression。MultipleFSContainers:指示数据库使用多个 FILESTREAM 容器。 数据库具有具有多个容器(文件)的 FILESTREAM 文件组。 有关详细信息,请参阅 FILESTREAM (SQL Server)。
InMemoryOLTP:指示数据库使用内存中 OLTP。 数据库具有 MEMORY_OPTIMIZED_DATA 文件组。 有关详细信息,请参阅 内存中 OLTP(内存中优化)。
分区。 指示数据库包含已分区表、已分区索引、分区方案或分区函数。 若要使数据库移动到企业版或开发人员版以外的 SQL Server,该数据库不足以修改表,使其位于单个分区上。 必须删除相应的已分区表。 如果该表包含数据,请使用 SWITCH PARTITION 将每个分区转换成无分区表。 然后删除已分区表、分区方案和分区函数。
TransparentDataEncryption。 指示使用透明数据加密对数据库进行加密。 若要删除透明数据加密,请使用 ALTER DATABASE 语句。 有关详细信息,请参阅透明数据加密 (TDE)。
注意
从 SQL Server 2016 (13.x) Service Pack 1 开始,这些功能(除 TransparentDataEncryption 外)在多个 SQL Server 版本中可用,不限于企业版或开发人员版。
若要确定数据库是否使用仅限于特定版本的任何功能,请对数据库执行下面的语句:
SELECT feature_name
FROM sys.dm_db_persisted_sku_features;
GO
有关 Windows 上 SQL Server 各版本支持的功能列表,请参阅:
- SQL Server 2022 各个版本及其支持的功能
- SQL Server 2019 各个版本及其支持的功能
- 版本和 SQL Server 2017 支持的功能
- 版本和 SQL Server 2016 支持的功能
有关 Linux 上 SQL Server 各版本支持的功能列表,请参阅: