DATABASEPROPERTYEX (Transact-SQL)

Возвращает текущее значение заданного параметра или свойства указанной базы данных.

Значок ссылки на раздел Синтаксические обозначения в Transact-SQL

Синтаксис

DATABASEPROPERTYEX ( database , property )

Аргументы

  • database
    Выражение, представляющее собой имя базы данных, для которой возвращается значение названного свойства. Аргумент database имеет тип nvarchar(128).

  • property
    Выражение, представляющее собой имя возвращаемого свойства базы данных. Аргумент property имеет тип varchar(128) и может принимать одно из следующих значений. Тип возвращаемого значения — sql_variant. В следующей таблице перечислены базовые типы данных для каждого из свойств.

    ПримечаниеПримечание

    Если база данных не запущена, то значения свойств, для получения которых SQL Server нужен непосредственный доступ к базе данных вместо доступа к метаданным, возвращаются равными NULL. Это происходит в случае, если для базы данных параметр AUTO_CLOSE установлен в ON или если база данных находится в режиме вне сети по другой причине.

    Свойство

    Описание

    Возвращенное значение

    Collation

    Имя установленных, по умолчанию, для базы данных параметров сортировки.

    Имя параметров сортировки.

    NULL = база данных не запущена.

    Базовый тип данных: nvarchar(128)

    ComparisonStyle

    Стиль сравнения Windows для параметров сортировки. Аргумент ComparisonStyle является битовой картой, вычисляемой по следующим значениям.

    Стиль

    Значение

    Игнорировать регистр

    1

    Без учета диакритических знаков

    2

    Без учета типа японской азбуки

    65536

    Без учета ширины

    131072

    Например, значение по умолчанию — 196609 — образуется в результате сочетания параметров «Без учета регистра», «Без учета типа японской азбуки» и «Без учета ширины».

    Возвращает стиль сравнения.

    Возвращает значение 0 для всех параметров двоичной сортировки.

    Базовый тип данных: int

    IsAnsiNullDefault

    База данных следует правилам ISO по разрешению значений NULL.

    1 = TRUE

    0 = FALSE

    NULL = Недопустимые входные данные.

    Базовый тип данных: int

    IsAnsiNullsEnabled

    При всех сравнениях со значением NULL результат не определен.

    1 = TRUE;

    0 = FALSE;

    NULL = Недопустимые входные данные.

    Базовый тип данных: int

    IsAnsiPaddingEnabled

    Строки перед сравнением или вставкой дополняются до одной и той же длины.

    1 = TRUE;

    0 = FALSE;

    NULL = Недопустимые входные данные.

    Базовый тип данных: int

    IsAnsiWarningsEnabled

    Сообщения об ошибках или предупреждения отображаются, если появляются стандартные условия ошибки.

    1 = TRUE;

    0 = FALSE;

    NULL = недопустимые входные данные.

    Базовый тип данных: int

    IsArithmeticAbortEnabled

    Запрос завершается, если в процессе его выполнения происходит ошибка переполнения или деления на нуль.

    1 = TRUE;

    0 = FALSE;

    NULL = Недопустимые входные данные.

    Базовый тип данных: int

    IsAutoClose

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

    1 = TRUE;

    0 = FALSE;

    NULL = Недопустимые входные данные.

    Базовый тип данных: int

    IsAutoCreateStatistics

    Оптимизатор запросов при необходимости создает статистику по отдельным столбцам для повышения производительности запросов.

    1 = TRUE;

    0 = FALSE;

    NULL = Недопустимые входные данные.

    Базовый тип данных: int

    IsAutoShrink

    Файлы базы данных являются кандидатами на автоматическое периодическое сжатие.

    1 = TRUE;

    0 = FALSE;

    NULL = Недопустимые входные данные.

    Базовый тип данных: int

    IsAutoUpdateStatistics

    Оптимизатор запросов обновляет существующую статистику, если она используется в запросе и может оказаться устаревшей.

    1 = TRUE;

    0 = FALSE;

    NULL = Недопустимые входные данные.

    Базовый тип данных: int

    IsCloseCursorsOnCommitEnabled

    Открытые курсоры закрываются при фиксации транзакции.

    1 = TRUE

    0 = FALSE

    NULL = недопустимые входные данные

    Базовый тип данных: int

    IsFulltextEnabled

    В базе данных включены полнотекстовое и семантическое индексирование.

    1 = TRUE

    0 = FALSE

    NULL = недопустимые входные данные

    Базовый тип данных: int

    ПримечаниеПримечание

    Значение этого свойства не учитывается. Полнотекстовый поиск всегда включен для пользовательских баз данных. Этот столбец будет удален в будущей версии SQL Server. Не используйте этот столбец при работе над новыми приложениями и как можно быстрее измените приложения, в настоящее время использующие любые из этих столбцов.

    IsInStandBy

    База данных доступна в режиме только для чтения, разрешен журнал восстановления.

    1 = TRUE;

    0 = FALSE;

    NULL = Недопустимые входные данные.

    Базовый тип данных: int

    IsLocalCursorsDefault

    Объявления курсора по умолчанию — LOCAL.

    1 = TRUE;

    0 = FALSE;

    NULL = Недопустимые входные данные.

    Базовый тип данных: int

    IsMergePublished

    Таблицы базы данных могут быть опубликованы для репликации слиянием, если репликация установлена.

    1 = TRUE;

    0 = FALSE;

    NULL = Недопустимые входные данные.

    Базовый тип данных: int

    IsNullConcat

    Объединение операнда со значением NULL дает значение NULL.

    1 = TRUE;

    0 = FALSE;

    NULL = Недопустимые входные данные.

    Базовый тип данных: int

    IsNumericRoundAbortEnabled

    При потере точности в выражениях возникают ошибки.

    1 = TRUE;

    0 = FALSE;

    NULL = недопустимые входные данные.

    Базовый тип данных: int

    IsParameterizationForced

    Параметр SET PARAMETERIZATION имеет значение FORCED.

    1 = TRUE;

    0 = FALSE;

    NULL = недопустимые входные данные.

    IsQuotedIdentifiersEnabled

    Двойные кавычки можно использовать в идентификаторах.

    1 = TRUE;

    0 = FALSE;

    NULL = Недопустимые входные данные.

    Базовый тип данных: int

    IsPublished

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

    1 = TRUE;

    0 = FALSE;

    NULL = Недопустимые входные данные.

    Базовый тип данных: int

    IsRecursiveTriggersEnabled

    Рекурсивное срабатывание триггеров разрешено.

    1 = TRUE;

    0 = FALSE;

    NULL = Недопустимые входные данные.

    Базовый тип данных: int

    IsSubscribed

    База данных подписана на публикацию.

    1 = TRUE;

    0 = FALSE;

    NULL = Недопустимые входные данные.

    Базовый тип данных: int

    IsSyncWithBackup

    База данных является опубликованной либо является базой данных распространителя и может быть восстановлена без нарушения репликации транзакций.

    1 = TRUE;

    0 = FALSE;

    NULL = Недопустимые входные данные.

    Базовый тип данных: int

    IsTornPageDetectionEnabled

    Компонент Компонент SQL Server Database Engine выявляет незавершенные операции ввода-вывода, вызванные сбоями питания или другими перерывами в работе системы.

    1 = TRUE;

    0 = FALSE;

    NULL = Недопустимые входные данные.

    Базовый тип данных: int

    LCID

    Код языка Windows для параметров сортировки.

    Значение кода LCID (в десятичном формате).

    Базовый тип данных: int

    Recovery

    Модель восстановления базы данных.

    FULL = модель полного восстановления.

    BULK_LOGGED = модель восстановления с неполным протоколированием.

    SIMPLE = простая модель восстановления.

    Базовый тип данных: nvarchar(128)

    SQLSortOrder

    Идентификатор порядка сортировки SQL Server, поддерживаемого в предыдущих версиях SQL Server.

    0 = в базе данных используются параметры сортировки Windows.

    >0 = идентификатор порядка сортировки SQL Server.

    NULL = недопустимые входные данные или база данных не запущена.

    Базовый тип данных: tinyint

    Status

    Состояние базы данных.

    ONLINE = база данных доступна для запросов.

    ПримечаниеПримечание

    Состояние базы данных ONLINE может быть возвращено, когда база находится в процессе открытия и еще не полностью восстановлена. Чтобы определить, может ли база данных принимать соединения, запросите свойство Collation функции DATABASEPROPERTYEX. База данных может принимать соединения, если параметры сортировки базы данных возвращают значение, отличное от NULL. Применительно к базам данных AlwaysOn выполните запрос к столбцу database_state или database_state_desc представления sys.dm_hadr_database_replica_states.

    OFFLINE = база данных явным образом переведена в режим вне сети.

    RESTORING = база данных находится в процессе восстановления.

    RECOVERING = база данных восстанавливается и еще не готова к запросам.

    SUSPECT = база данных не восстанавливалась.

    EMERGENCY = база данных находится в аварийном состоянии и доступна только для чтения. Доступ ограничен до членов роли sysadmin

    Базовый тип данных: nvarchar(128)

    Updateability

    Указывает, можно ли изменять данные.

    READ_ONLY = данные можно считывать, но не изменять.

    READ_WRITE = данные можно считывать и изменять.

    Базовый тип данных: nvarchar(128)

    UserAccess

    Указывает пользователей, имеющих доступ к базе данных.

    SINGLE_USER = в каждый момент времени доступ имеет только один пользователь db_owner, dbcreator или sysadmin

    RESTRICTED_USER = только члены ролей db_owner, dbcreator и sysadmin

    MULTI_USER = все пользователи

    Базовый тип данных: nvarchar(128)

    Version

    Внутренний номер версии того SQL Server кода, с которым была создана база данных. Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

    Номер версии = база данных открыта.

    NULL = база данных не запущена.

    Базовый тип данных: int

Типы возвращаемых данных

sql_variant

Исключения

Возвращает значение NULL в случае ошибки или если участник не имеет разрешения на просмотр объекта.

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

Замечания

Функция DATABASEPROPERTYEX возвращает каждый раз значение только одного свойства. Для отображения значений нескольких свойств используйте представление каталога sys.databases.

Примеры

А.Получение состояния параметра базы данных AUTO_SHRINK

На следующем примере показано, как возвращается состояние параметра AUTO_SHRINK базы данных AdventureWorks.

SELECT DATABASEPROPERTYEX('AdventureWorks2012', 'IsAutoShrink');

Ниже приводится результирующий набор. Это означает, что параметр AUTO_SHRINK отключен.

------------------
0

Б.Получение установленных по умолчанию параметров сортировки для базы данных

На следующем примере показано, как возвращается имя установленных по умолчанию для базы данных AdventureWorks параметров сортировки.

SELECT DATABASEPROPERTYEX('AdventureWorks2012', 'Collation');

Ниже приводится результирующий набор.

------------------------------
SQL_Latin1_General_CP1_CI_AI

См. также

Справочник

ALTER DATABASE (Transact-SQL)

sys.databases (Transact-SQL)

sys.database_files (Transact-SQL)

SERVERPROPERTY (Transact-SQL)

Основные понятия

Состояния базы данных