Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Тригеры -назначение, принцип работы и их логика

Автор:   •  Ноябрь 22, 2021  •  Лекция  •  1,189 Слов (5 Страниц)  •  182 Просмотры

Страница 1 из 5

Два вида триггеров:

  1. ALTER (используется по умолчанию)

Срабатывает после внесения данных в таблицу

  1. INSTED OF

Срабатывает в момент внесения данных в таблицу

Существует 3 типа триггеров:

  1. Insert trigger.
  2. Update trigger.
  3. Delete trigger.

Ограничение на использование триггеров:

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

Временные таблицы:

inserted

deleted

Сравнение класса триггеров

Характеристика

Instead of

Alter

Объект, к которому может быть привязан триггер

таблица или представление

Таблица

Допустимое число триггеров

в таблице или представлении допуск не больше одного триггера в расчете на одно действие

к таблице можно привязать несколько Alter триггеров

Порядок исполнения

не имеет значения

можно определить триггеры, срабатывающие первыми или последними. Для этого служит системная хранимая процедура S1_ settriger.order

Создание триггера:

Create trigger [dbo.имя триггера]

ON [имя таблицы или представления]

FOR [класс триггера: Insert, Update, Delete]

AS

программа

Примеры триггеров.

Пример 1.

Запрет вставки новой строки.

Create trigger no insert on table 1

For insert

As

Rollback transaction

Команда rollback transaction вызывает откат транзакции.

Пример 2.

Обновление поля во всех записях.

Update table 1 Set a1 = 1

Пример 3.

Обновление поля записей, выбранных по условию.

Update table 2 Set sum > 1000 Where numer = 103

Пример 4.

Обновление сразу нескольких полей в записях таблиц, удовлетворяющих условию.

Update table 2 Set fam = `Петров`, imya = `Василий`, Otch = `Иванович`

Where numer = `6550`

Пример 5. Удаление записей

Удаление всех записей таблицы.

Delete from table 1

Удаление записей по заданному условию.

Delete from table 1 Where а1 > 100

Пример 6. Вставка записей

Команда Insert.

Insert into table [(список полей)] Values (список значений)

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

Insert into table 1 (а1, а2, а3) Values (10, `Петров`, `студент`)

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

Insert into table Values (10, `Петров`, `01.01.2005`).

Переменные

DECLARE @a INТ, @ name char (20), @ char (20)

       Select @ name =‘Справка’          2)

       Select @ a = count(*) from table1            

       Set @ а = (select sum (op1) FROM SALARY)                3)

Пример 1: DECLARE @a varchar (20)

                  DECLARE @b char (20)

                  Set @a = ‘Иван’ Set @ b = ‘Петрович’

                  Set @a = @a + @b

Пример 2: DECLARE @a NUMERIC (10,2)                  @a = 10,23

                         DECLARE @d  DATETIME

Управляющие конструкции языка

  Комментарии

/ * Это длинный

                         комментарий */

- - Это короткий комментарий.

BEGIN

. . .              set @a = (select count * from table 1 )

. . .              insert into table 2 10, 20

     RETURN

END

IF

Синтаксис  IF – усл

[группа операторов]             

ELSE

[группа _ операторов]

IF @i >10 and @j <10

       BEGIN

             INSERT INTO table 1 ii, jj values (@i, @j)    

             UPDATE TABLE 2 set salary = @f where nomer <1000

      END

ELSE

RETURN

Оператор цикла.

WHILE логическое _ выражение

группа_ операторов

[BREAK]

группа_ операторов

[CONTINUE]

BREAK прерывает выполнение цикла

CONTINUE возвращает к началу цикла. При этом, операторы, находящиеся ниже его, не будут выполнены.

...

Скачать:   txt (11 Kb)   pdf (148 Kb)   docx (24.2 Kb)  
Продолжить читать еще 4 страниц(ы) »
Доступно только на Essays.club