sys.dm_db_persisted_sku_features (Transact-SQL)

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics AnalyticsPlatform System (PDW)

Некоторые функции ядро СУБД изменить способ хранения информации в файлах базы данных. Эти функции ограничены определенными выпусками SQL Server. База данных, содержащая эти функции, не может быть перемещена в выпуск SQL Server, который не поддерживает их. Используйте динамическое sys.dm_db_persisted_sku_features представление управления для перечисления функций, которые включены в текущей базе данных.

Имя столбца Тип данных Description
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: указывает, что по крайней мере одна таблица имеет индекс columnstore. Чтобы включить перемещение базы данных в выпуск SQL Server, который не поддерживает эту функцию, используйте инструкцию DROP INDEX или ALTER INDEX для удаления индекса columnstore. Дополнительные сведения см. в разделе "Индексы Columnstore".

  • Сжатие: указывает, что по крайней мере одна таблица или индекс использует сжатие данных или формат хранилища vardecimal. Чтобы включить перемещение базы данных в выпуск SQL Server, который не поддерживает эту функцию, используйте инструкцию ALTER TABLE или ALTER INDEX для удаления сжатия данных. Чтобы удалить формат хранилища vardecimal, используйте инструкцию sp_tableoption . Дополнительные сведения см. в разделе Data Compression.

  • MultipleFSContainers: указывает, что база данных использует несколько контейнеров FILESTREAM. База данных содержит файловую группу FILESTREAM с несколькими контейнерами (файлами). Дополнительные сведения см. в разделе FILESTREAM (SQL Server).

  • InMemoryOLTP: указывает, что база данных использует OLTP в памяти. База данных имеет файловую группу MEMORY_OPTIMIZED_DATA. Дополнительные сведения см. в разделе In-Memory OLTP (оптимизация в памяти).

  • Секционирования. Указывает, что база данных содержит секционированные таблицы или индексы, схемы или функции секционирования. Чтобы включить перемещение базы данных в выпуск SQL Server, отличного от Enterprise или Developer, недостаточно изменить таблицу для одной секции. Необходимо удалить секционированную таблицу. Если таблица содержит данные, конвертировать каждую секцию в несекционированную таблицу можно с помощью инструкции SWITCH PARTITION. Затем необходимо удалить секционированную таблицу, схему секционирования и функцию секционирования.

  • TransparentDataEncryption. Указывает, что база данных зашифрована с помощью прозрачного шифрования данных. Чтобы удалить прозрачное шифрование данных, используйте инструкцию ALTER DATABASE. Дополнительные сведения см. в разделе прозрачное шифрование данных (TDE).

Примечание.

Начиная с SQL Server 2016 (13.x) с пакетом обновления 1 (SP1), эти функции, кроме TransparentDataEncryption , доступны в нескольких выпусках SQL Server и не ограничиваются только выпусками Enterprise или Developer.

Чтобы определить, используются ли в базе данных функции, ограниченные конкретными выпусками, выполните следующую инструкцию:

SELECT feature_name
FROM sys.dm_db_persisted_sku_features;
GO

Список функций, поддерживаемых выпусками SQL Server в Windows, см. в следующих статье:

Список функций, поддерживаемых выпусками SQL Server на Linux, см. в следующих статье: