sp_dboption (Transact-SQL)
Отображает или изменяет параметры базы данных. Не используйте sp_dboption для изменения параметров баз данных master или tempdb.
Важно! |
---|
В следующей версии Microsoft SQL Server эта возможность будет удалена. Не используйте ее при работе над новыми приложениями и как можно быстрее измените приложения, в которых она в настоящее время используется. Используйте вместо этого команду ALTER DATABASE. Чтобы изменить параметры базы данных, связанные с репликацией (merge publish, published, subscribed), используется хранимая процедура sp_replicationdboption. |
Синтаксис
sp_dboption [ [ @dbname = ] 'database' ]
[ , [ @optname = ] 'option_name' ]
[ , [ @optvalue = ] 'value' ]
[;]
Аргументы
[ @dbname= ] 'database'
Имя базы данных, в которой должен быть установлен указанный параметр. Аргумент database имеет тип sysname и значение по умолчанию NULL.[ @optname= ] 'option_name'
Имя устанавливаемого параметра. Необязательно вводить полное имя параметра. SQL Server распознает любую часть имени, являющуюся уникальной. Заключите имя параметра в кавычки, если оно включает в себя вложенные пробелы или является ключевым словом. Если этот аргумент опущен, процедура sp_dboption приводит список включенных параметров. Аргумент option_name имеет тип varchar(35) и значение по умолчанию NULL.[ @optvalue=] 'value'
Новая установка для аргумента option_name. Если этот параметр опущен, процедура sp_dboptionвозвращает текущее значение. Параметр value может иметь значение true, false, on или off. Параметр value имеет тип varchar(10) и значение по умолчанию NULL.
Значения кодов возврата
0 (успешное завершение) или 1 (неуспешное завершение)
Результирующие наборы
В нижеследующей таблице показан результирующий набор, получаемый без указания аргументов.
Имя столбца |
Тип данных |
Описание |
---|---|---|
Settable database options |
nvarchar(35) |
Все устанавливаемые параметры базы данных. |
В нижеследующей таблице показан результирующий набор, возвращаемый в случае, когда database является единственным предоставленным аргументом.
Имя столбца |
Тип данных |
Описание |
---|---|---|
The following options are set: |
nvarchar(35) |
Параметры, устанавливаемые для указанной базы данных. |
В нижеследующей таблице показан результирующий набор, получаемый при указании аргумента option_name.
Имя столбца |
Тип данных |
Описание |
---|---|---|
OptionName |
nvarchar(35) |
Имя параметра. |
CurrentSetting |
char(3) |
Указание на то, включен или выключен параметр в настоящий момент. |
Если задан аргумент value, то процедура sp_dboption не возвращает результирующий набор.
Замечания
В нижеследующей таблице приведены параметры, устанавливаемые посредством процедуры sp_dboption. Дополнительные сведения о каждом параметре см. в разделе Установка параметров базы данных.
Способ |
Описание |
---|---|
auto create statistics |
При значении true любые статистические данные, необходимые для оптимизации запроса, автоматически выстраиваются в процессе оптимизации. Дополнительные сведения см. в разделе CREATE STATISTICS (Transact-SQL). |
auto update statistics |
При значении true любые устаревшие статистические данные, необходимые для оптимизации запроса, автоматически выстраиваются в процессе оптимизации. Дополнительные сведения см. в разделе UPDATE STATISTICS (Transact-SQL). |
autoclose |
При значении true база данных отключается и ее ресурсы освобождаются, как только последний пользователь выходит из системы. |
autoshrink |
При значении true файлы базы данных являются потенциальными объектами периодического автоматического сжатия. |
ANSI null default |
При значении true, инструкция CREATE TABLE следует правилам ISO, чтобы определить, допускаются ли для столбца значения NULL. |
ANSI nulls |
При значении true все сравнения со значением NULL вычисляются в UNKNOWN. При значении false сравнения значений не в формате Юникод со значением NULL вычисляются в TRUE, если оба значения являются значениями NULL. |
ANSI warnings |
При значении true выдаются предупреждения в случае возникновения ситуаций, подобных «делению на ноль». |
arithabort |
При значении true переполнение или ошибка деления на ноль приводит к прекращению выполнения запроса или пакета. Если произошла ошибка в транзакции, для этой транзакции выполняется откат. При значении false предупреждающее сообщение отображается, но запрос, пакет или транзакция продолжают выполняться, как если бы ошибки не произошло. |
concat null yields null |
При значении true, если любой из операндов в операции объединения имеет значение NULL, результатом будет NULL. |
cursor close on commit |
При значении true любые курсоры, открытые на момент фиксации или отката транзакции, закрываются. При значении false такие курсоры остаются открытыми после фиксации транзакции. При значении false откат транзакции вызывает закрытие любых курсоров, за исключением тех, что определены как INSENSITIVE или STATIC. |
dbo use only |
При значении true только владелец базы данных может пользоваться этой базой данных. |
default to local cursor |
При значении true при объявлении курсоров им по умолчанию присваивается состояние LOCAL. |
merge publish |
При значении true база данных может быть опубликована для репликации слиянием. |
numeric roundabort |
При значении true выдается ошибка, если происходит потеря точности в выражении. При значении false при потерях точности не выдаются сообщения об ошибке, а результат округляется до точности столбца или переменной, где результат хранится. |
offline |
При значении true (on) база данных работает в режиме вне сети. При значении false (off) база данных работает в режиме в сети. |
published |
При значении true база данных может быть опубликована для репликации. |
quoted identifier |
При значении true двойные кавычки могут использоваться для заключения в них идентификаторов с разделителями. |
read only |
При значении true пользователи могут только считывать данные в базе данных. Пользователи не могут изменять данные или объекты базы данных, однако сама база данных может быть удалена при помощи инструкции DROP DATABASE. База данных не может использоваться в процессе присвоения нового value параметру «только для чтения». База данных master является исключением, и только системный администратор может использовать базу данных master в процессе присвоения значения параметру «только для чтения». |
recursive triggers |
При значении true включается рекурсивное срабатывание триггеров. При значении false предотвращается только прямая рекурсия. Чтобы отключить косвенную рекурсию, присвойте параметру сервера вложенные триггеры значение 0, используя sp_configure. |
select into/bulkcopy |
Начиная с версии Microsoft SQL Server 2000, если установлена модель восстановления базы данных FULL, при использовании параметра select into/bulkcopy устанавливается модель восстановления BULK_LOGGED. Правильный способ изменения модели восстановления — использование предложения SET RECOVERY инструкции ALTER DATABASE. |
single user |
При значении true только один пользователь на момент времени может получить доступ к базе данных. |
subscribed |
При значении true база данных может быть подписана на публикацию. |
torn page detection |
При значении true могут выявляться неполные страницы. |
trunc. log on chkpt. |
При значении true в контрольной точке происходит усечение неактивной части журнала, если база данных находится в режиме усечения журнала. Это единственный параметр, который можно установить для базы данных master.
Важно!
Начиная с SQL Server 2000, присвоение параметру trunc. log on chkpt. значения true устанавливает для модели восстановления базы данных состояние SIMPLE. Присвоение этому параметру значения false устанавливает для модели восстановления состояние FULL.
|
Владелец базы данных или системный администратор может устанавливать или отключать определенные параметры для всех новых баз данных, выполняя процедуру sp_dboption в базе данных model.
После выполнения процедуры sp_dboption выполняется контрольный перезапуск базы данных, для которой был изменен параметр. Это позволяет изменению вступить в силу немедленно.
Процедура sp_dboption изменяет настройки базы данных. Используйте процедуру sp_configure, чтобы изменить настройки на уровне сервера, и инструкцию SET, чтобы изменить настройки, влияющие только на текущий сеанс.
Разрешения
Для отображения полного списка параметров базы данных и их текущих значений требуется членство в роли public. Для изменения значения параметра базы данных требуется членство в предопределенной роли базы данных db_owner.
Примеры
А. Установка для базы данных режима «только для чтения»
В нижеследующем примере база данных База данных AdventureWorks2008R2 переводится в режим «только для чтения».
USE master;
GO
EXEC sp_dboption 'AdventureWorks2008R2', 'read only', 'TRUE';
В. Отключение параметра
В нижеследующем примере база данных База данных AdventureWorks2008R2 вновь делается доступной для записи.
USE master;
GO
EXEC sp_dboption 'AdventureWorks2008R2', 'read only', 'FALSE';