sys.dm_db_persisted_sku_features (Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure 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 與功能相關聯的功能標識碼。 僅供參考之用。 不支援。 不保證未來的相容性。

權限

針對 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 INDEXALTER INDEX 語句來移除資料行存放區索引。 如需詳細資訊,請參閱 數據行存放區索引

  • 壓縮:表示至少有一個數據表或索引使用數據壓縮或 vardecimal 儲存格式。 若要讓資料庫移至不支援此功能的 SQL Server 版本,請使用 ALTER TABLEALTER INDEX 語句來移除資料壓縮。 若要移除 vardecimal 儲存格式,請使用 sp_tableoption 語句。 如需詳細資訊,請參閱 Data Compression

  • MultipleFSContainers:指出資料庫使用多個 FILESTREAM 容器。 資料庫具有具有多個容器的 FILESTREAM 檔案群組(檔案)。 如需詳細資訊,請參閱 FILESTREAM (SQL Server)

  • InMemoryOLTP:指出資料庫使用記憶體內部 OLTP。 資料庫具有MEMORY_OPTIMIZED_DATA檔案群組。 如需詳細資訊,請參閱 In-Memory OLTP (記憶體中最佳化)

  • 資料分割。 表示資料庫包含數據分割數據表、數據分割索引、數據分割配置或數據分割函數。 若要讓資料庫移至 Enterprise 或 Developer 以外的 SQL Server 版本,它不足以修改數據表以放在單一分割區上。 您必須移除資料分割資料表。 如果數據表包含數據,請使用 SWITCH PARTITION 將每個分割區轉換成非分割數據表。 然後,刪除數據分割數據表、數據分割配置和數據分割函數。

  • TransparentDataEncryption。 表示使用透明數據加密來加密資料庫。 若要移除透明數據加密,請使用 ALTER DATABASE 語句。 如需詳細資訊,請參閱透明資料加密 (TDE)

注意

從 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 版本所支援的功能清單,請參閱: