sp_dboption (Transact-SQL)
Отображает или изменяет параметры базы данных. Не используйте sp_dboption для изменения параметров баз данных master или tempdb.
Важно! |
---|
В будущей версии Microsoft SQL Server эта возможность будет удалена. Избегайте использования этой возможности в новых разработках и запланируйте изменение существующих приложений, в которых она применяется. Используйте параметр ALTER DATABASE. Чтобы изменить параметры базы данных, связанные с репликацией (merge publish, published, subscribed), используйте процедуру sp_replicationdboption. |
Соглашения о синтаксическом обозначении в Transact-SQL
Синтаксис
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 следует правилам SQL-92, чтобы определить, допускаются ли для столбца значения 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.
Примеры
А. Установка для базы данных режима «только для чтения»
В нижеследующем примере база данных AdventureWorks
переводится в режим «только для чтения».
USE master;
GO
EXEC sp_dboption 'AdventureWorks', 'read only', 'TRUE';
В. Отключение параметра
В нижеследующем примере база данных AdventureWorks
вновь делается доступной для записи.
USE master;
GO
EXEC sp_dboption 'AdventureWorks', 'read only', 'FALSE';
См. также
Справочник
Хранимые процедуры ядра СУБД (Transact-SQL)
ALTER DATABASE (Transact-SQL)
Хранимая процедура sp_configure (Transact-SQL)
Системные хранимые процедуры (Transact-SQL)
SET (Transact-SQL)
Другие ресурсы
Установка параметров базы данных