Пространственные данные — sys.dm_db_objects_disabled_on_compatibility_level_change

Применяется к:SQL ServerAzure SQL DatabaseAzure, управляемому экземпляру SQL Azure

Выводит список индексов и ограничений, которые будут отключены в результате изменения уровня совместимости в SQL Server. Индексы и ограничения, содержащие материализованные вычисляемые столбцы, в выражениях которых используются пространственные определяемые пользователем типы, будут отключены после обновления или изменения уровня совместимости. Данная функция динамического управления используется для определения влияния изменений уровня совместимости.

Соглашения о синтаксисе Transact-SQL

Синтаксис

sys.dm_db_objects_disabled_on_compatibility_level_change ( compatibility_level )   

Аргументы

compatibility_level
Int , определяющий уровень совместимости, который планируется задать.

Возвращаемая таблица

Имя столбца Тип данных Описание:
class int 1 = ограничения

7 = индексы и кучи
class_desc nvarchar(60) OBJECT или COLUMN для ограничений

INDEX для индексов и куч
major_id int OBJECT ID ограничений

OBJECT ID таблицы, в которой содержатся индексы и кучи.
minor_id int NULL для ограничений

Index_id для индексов и куч
зависимость nvarchar(60) Описание зависимости, которая вызывает отключение ограничения или индекса. Эти же значения используются также в предупреждениях, возникающих во время обновления. Примеры:

space для встроенных

geometry для системы определяемого пользователем типа

geography::Parse для метода системного определяемого пользователем типа

Общие замечания

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

Использование каких функций приводит к отключению материализованных вычисляемых столбцов?

При использовании следующих функций в выражении материализованных вычисляемых столбцов происходит отключение индексов и ограничений, которые ссылаются на данные столбцы, в ходе изменения уровня совместимости с 80 на 90.

  • IsNumeric

При использовании следующих функций в выражении материализованных вычисляемых столбцов происходит отключение индексов и ограничений, которые ссылаются на данные столбцы, в ходе изменения уровня совместимости с 100 на 110 или выше.

  • Soundex

  • Geography:: GeomFromGML

  • Geography:: STGeomFromText

  • Geography:: STLineFromText

  • Geography:: STPolyFromText

  • Geography:: STMPointFromText

  • Geography:: STMLineFromText

  • Geography:: STMPolyFromText

  • Geography:: STGeomCollFromText

  • Geography:: STGeomFromWKB

  • Geography:: STLineFromWKB

  • Geography:: STPolyFromWKB

  • Geography:: STMPointFromWKB

  • Geography:: STMLineFromWKB

  • Geography:: STMPolyFromWKB

  • География:: STUnion

  • География:: STIntersection

  • География:: STDifference

  • Geography:: STSymDifference

  • География:: STBuffer

  • Geography:: BufferWithTolerance

  • География:: синтаксический анализ

  • География:: сокращение

Поведение отключенных объектов

Индексы

Если кластеризованный индекс отключен или если некластеризованный индекс принудительно, возникает следующая ошибка: "Обработчик запросов не может создать план, так как индекс "%.*ls" в таблице или представлении "%.*ls" отключен". Чтобы повторно включить эти объекты, перестройте индексы после обновления путем вызова ALTER INDEX ON ... ПЕРЕСТРОЙТЕ.

Кучи

При использовании таблицы с отключенной кучей возникает следующая ошибка. Чтобы повторно включить эти объекты, перестройте после обновления путем вызова ALTER INDEX ALL ON ... ПЕРЕСТРОЙТЕ.

// ErrorNumber: 8674  
// ErrorSeverity: EX_USER  
// ErrorFormat: The query processor is unable to produce a plan because the table or view '%.*ls' is disabled.  
// ErrorCause: The table has a disabled heap.   
// ErrorCorrectiveAction: Rebuild the disabled heap to enable it.   
// ErrorInserts: table or view name   
// ErrorOwner: mtintor   
// ErrorFirstProduct: SQL11  

При попытке перестроить кучу во время оперативной операции возникает ошибка.

Проверка ограничений и внешних ключей

При отключенных проверочных ограничениях и внешних ключах сообщение об ошибке не возникает. Однако ограничения не применяются при изменении строк. Чтобы повторно включить эти объекты, проверьте ограничения после обновления путем вызова ALTER TABLE ... ОГРАНИЧЕНИЕ CHECK.

Сохраненные вычисляемые столбцы

При отсутствии возможности отключения отдельного столбца отключается вся таблица посредством отключения кластеризованного индекса или кучи.

Безопасность

Разрешения

Необходимо разрешение VIEW DATABASE STATE.

Разрешения для SQL Server 2022 и более поздних версий

Требуется разрешение VIEW DATABASE PERFORMANCE STATE для базы данных.

пример

В следующем примере показан запрос на sys.dm_db_objects_disabled_on_compatibility_level_change для поиска объектов, затронутых изменением уровня совместимости на 120.

SELECT * FROM sys.dm_db_objects_disabled_on_compatibility_level_change(120);  
GO