Триггеры Sql-Сервера

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

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

Триггеры создаются в Enterprise Manager или в анализаторе запросов через браузер объектов. В Анализаторе запросов также есть шаблоны триггеров (Правка | Вставить триггер). Триггеры могут быть созданы с использованием следующего синтаксиса:

СОЗДАТЬ ТРИГГЕР имя_триггера

ВКЛ { таблица | вид }

С ШИФРОВАНИЕМ]

ЗА | ПОСЛЕ | ВМЕСТО } { [ ВСТАВКА ] [ , ] [ ОБНОВЛЕНИЕ ] }

С ДОБАВЛЕНИЕМ]

НЕ ДЛЯ реплицирования]

КАК

ЕСЛИ ОБНОВЛЕНИЕ (столбец)

И | ИЛИ } ОБНОВЛЕНИЕ (столбец)]

н ]

ЕСЛИ ( COLUMNS_UPDATED ( ) { побитовый_оператор } обновленная_битовая маска )

оператор_сравнения } битовая маска_столбца [ . n ]

sql_statement [ . n ]

Существует два типа триггеров: ПОСЛЕ и ВМЕСТО. Триггеры After срабатывают после изменения данных путем вставки, удаления или обновления. Если данные не подходят, как определено в триггере, модификацию можно откатить до того места, где она была до изменения данных. Триггеры After AFTER TRIGGERS нельзя размещать в представлениях и нельзя использовать более чем в одной таблице. Кроме того, в триггере after нельзя ссылаться на столбцы text, ntext и image. ПОСЛЕ ТРИГГЕРОВ.

Триггеры After AFTER TRIGGERS могут быть вложены до 32 уровней и вызываться рекурсивно, опять же до 32 уровней.

Вместо триггеров INSTEAD OF выполните проверку перед модификацией. Однако вместо триггеров INSTEAD OF CAN можно использовать в представлениях. Они не допускают рекурсию, и вы можете использовать только один триггер вместо INSTEAD OF для каждой таблицы. И вы не можете использовать триггер вместо INSTEAD OF с каскадом.

Ресурсы

Информация об ограничениях и триггерах.

В этом ресурсе подробно обсуждаются ограничения и триггеры.

Информация: создать триггер.

Этот ресурс полезен для детального понимания работы триггеров.

Консультанты по SQL-серверу Метро Нью-Йорка/Нью-Джерси

Мы специализируемся на индивидуальном программном обеспечении баз данных. Позвоните нам для бесплатной консультации (973) 635 0080 или напишите нам по адресу paladn.com.




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

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

Создание триггеров
Чтобы создать триггер в SQL Server, вы можете использовать оператор CREATE TRIGGER. Триггеры можно определить для таблиц или представлений и настроить в соответствии с конкретными требованиями. Синтаксис создания триггера следующий:

СОЗДАТЬ ТРИГГЕР имя_триггера
ВКЛ { таблица | вид }
[С ШИФРОВАНИЕМ]
{
{ { ЗА | ПОСЛЕ | ВМЕСТО } { [ ВСТАВКА ] [ , ] [ ОБНОВЛЕНИЕ ] }
[С ДОБАВЛЕНИЕМ]
[НЕ ДЛЯ реплицирования]
КАК
[ { ЕСЛИ ОБНОВЛЕНИЕ (столбец)
[ { И | ИЛИ } ОБНОВЛЕНИЕ (столбец)]
[ . н ]
| ЕСЛИ ( COLUMNS_UPDATED ( ) { побитовый_оператор } обновленная_битовая маска )
{ оператор_сравнения } битовая маска_столбца [ . n ]
} ]
sql_statement [ . n ]
}
}

Типы триггеров
В SQL Server существует два основных типа триггеров: триггеры AFTER и триггеры INSTEAD OF.

  1. ПОСЛЕ триггеров:
    Триггеры AFTER срабатывают после выполнения операции изменения данных (вставки, обновления или удаления). Они обычно используются для реализации правил проверки данных или выполнения дополнительных задач на основе измененных данных. Важно отметить, что триггеры AFTER нельзя применять к представлениям и ограничены одной таблицей. Кроме того, на некоторые типы данных, такие как столбцы text, ntext и image, нельзя ссылаться в триггере AFTER. Триггеры After могут иметь до 32 уровней вложенности и вызываться рекурсивно на одну и ту же глубину.

  2. ВМЕСТО триггеров:
    Триггеры INSTEAD OF выполняются до того, как произойдет фактическая операция изменения данных. Они особенно полезны для реализации сложных значений по умолчанию, каскадных операций с несколькими таблицами или обработки изменений представлений. В отличие от триггеров AFTER, триггеры INSTEAD OF можно применять к представлениям и обеспечивать большую гибкость в управлении процессом изменения. Однако они не поддерживают рекурсию, и для каждой таблицы можно использовать только один триггер INSTEAD OF. Кроме того, триггеры INSTEAD OF нельзя использовать в сочетании с каскадными операциями.

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

Заключение
Триггеры SQL Server — это мощные инструменты, позволяющие разработчикам автоматизировать действия на основе изменений данных в базе данных. Они предоставляют гибкий механизм для обеспечения соблюдения бизнес-правил, поддержания целостности данных и беспрепятственного выполнения дополнительных задач. Используя триггеры, разработчики могут улучшить функциональность своих приложений баз данных и обеспечить согласованное и надежное управление данными.

Ресурсы

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

об авторе
Консультанты по SQL Server Metro NY/NJ специализируется на индивидуальных программных решениях для баз данных. Имея команду опытных профессионалов, они предлагают экспертные советы и консультации, чтобы помочь предприятиям максимально использовать потенциал своих баз данных SQL Server. Для получения бесплатной консультации свяжитесь с ними по телефону (973) 635 0080 или напишите по адресу paladn.com.

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2011-07-23 05:15:35
Баллов опыта: 552966
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.