Разрешение и запрещение вложенных триггеров


Установка мови за умовчанням для SQL Server

Язык по умолчанию определяет форматы по умолчанию для отображения дат, названий месяцев и дней. Ели не установлена локализированная версия SQL Server, используется английский (США) язык. Локализированные версии SQL Server отображают информацию на французском, немецком, японском, испанском и других языках. На локализированном сервере доступны два набора системных сообщений: на английском (США) и локальном языках, и сообщения SQL Server будут отображаться на том из них, который установлен как язык по умолчанию.

На странице Advanced (Дополнительные) диалогового окна Server Properties (Свойства сервера) из раскрывающегося списка Default Language (Язык по умолчанию) выберите язык и щелкните кнопку OK. Чтобы применить установку нового языка по умолчанию, требуется остановить и перезапустить сервер. Соответствующая инструкция Transact-SQL с использованием хранимой процедуры sp_configure такая:

EXEC sp_configure 'default language', language_id

Идентификатором для английского языка (США) всегда является значение 0.

Системное представление sys.languages содержит одну строку для каждого языка, доступного на сервере.

Разрешение и запрещение обновления системных таблиц

В SQL Server 2005 непосредственное обновлении системных таблиц не поддерживается, хотя параметр allow updates хранимой процедуры sp_configure оставлен для обеспечения обратной совместимости. Однако его установка не производит никакого эффекта.

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

Настроить SQL Server для использования вложенных триггеров позволяет один из параметров на странице Advanced (Дополнительные) диалогового окна Server Properties (Свойства сервера). Для этого выполните следующие действия.

1. В диалоговом окне Server Properties (Свойства сервера) перейдите на страницу Advanced (Дополнительные).

2. В раскрывающемся списке Allow Triggers to Fire Others (Разрешить триггерам запускать другие триггеры) выберите необходимое значение — True или False.

3. Щелкните кнопку OK.

Соответствующая инструкция Transact-SQL с использованием хранимой процедуры sp_configure такая:

EXEC sp_configure 'nested triggers', {0 | 1}

Используйте 0, чтобы запретить, и 1, чтобы разрешить вложенность триггеров.