рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Тригери у Transact SQL

Тригери у Transact SQL - раздел Образование, Віртуальні таблиці візії. Перейменування атрибутів візії Для Аналізу Синтаксису Команди Create Trigger У Transact Sql Скористаємось Bo...

Для аналізу синтаксису команди CREATE TRIGGER у Transact SQL скористаємось Books Online (Пуск\Microsoft SQL Server\Books Online).

 

 

Рис.14.13. Як знайти опис команди CREATE TRIGGER у BOOKS ONLINE

 

Наведемо визначення синтаксису команди CREATE TRIGGER у Transact SQL.

CREATE TRIGGER trigger_name
ON { table | view }
[ WITH ENCRYPTION ]
{
{ {FOR | AFTER | INSTEAD OF } { [ INSERT ] [ ,] [ UPDATE ] }
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS
[ { IF UPDATE (column )
[ { AND | OR } UPDATE (column )]
[ ...n ]
| IF ( COLUMNS_UPDATED ( ){ bitwise_operator } updated_bitmask )
{ comparison_operator } column_bitmask [ ...n ]
} ]
sql_statement [...n ]
}
}

Рис.14.14. Transact-SQL cинтаксис команди CREATE TRIGGER у BOOKS ONLINE

 

Рядки Що вони містять
CREATE TRIGGER trigger_name Заголовок, назва тригера
ON { table | view } Ім’я таблиці або візії
[ WITH ENCRYPTION ] Тригер зачиняється від інших користувачів і не реплікується
{ {FOR | AFTER | INSTEAD OF } { [ INSERT ] [ ,] [ UPDATE ] } FOR еквівалентно AFTER, залишено для сумісності. Помилково пропущено слово [DELETE]. deleted and inserted – таблиці попередніх і нових даних.
[ WITH APPEND ] Для сумісності з версією 6.5.
[ NOT FOR REPLICATION ] Тригер не виконується при реплікації
[ { IF UPDATE (column ) [ { AND | OR } UPDATE (column )] [ ...n ] Перевірка, чи оновлювались колонки column
| IF ( COLUMNS_UPDATED ( ){ bitwise_operator } updated_bitmask ) { comparison_operator } column_bitmask [ ...n ] Визначення, чи оновлювався набір колонок, за допомогою бітової маски
sql_statement [...n ] Умови і дії тригера як послідовність команд Transact-SQL deleted and inserted – таблиці попередніх і нових даних.

 

Усього опис з прикладами займає12 великих екранних сторінок.

 

Приклад 14.10. Використання тригера для нагадування за допомогою Email

USE pubs1) IF EXISTS (SELECT name FROM sysobjects2) WHERE name = 'reminder' AND type = 'TR')3) DROP TRIGGER reminder4) GO5) CREATE TRIGGER reminder6) ON titles7) FOR INSERT, UPDATE, DELETE 8) AS9) EXEC master..xp_sendmail 'MaryM', 10) 'Don''t forget to print a report for the distributors.'11) GO

 

Рис.14.15. Використання тригера для нагадування за допомогою Email

 

У цьому прикладі рядки 1-4 забезпечують видалення попередньої версії тригера. Будь-які зміни відношення titles (рядки 6,7) тягнуть відсилання Email адресату 'MaryM' з нагадуванням про необхідність роздрукувати звіт.

 

xp_sendmail відсилає вказаному адресату листа та приєднує результати виконання запиту. Опис xp_sendmail займає 4 великих екранних сторінки.

 

Команда GO (рядки 4, 11) формує пакет (від GO до GO). Пакет виконується по одному плану виконання, хоча не є транзакцією.

 

Приклад 14.11. ([8], стор.293). Нехай відношення Books містить перелік книг, а відношення BookOrders фіксує факти продажу книг. Якщо книга продана, у відношення BookOrders додається кортеж, і тоді у відношення Books в атрибуті sold треба поставити 1.

 

CREATE TRIGGER dbo.update_book_status

ON dbo.bookOrders

AFTER INSERT

AS

UPDATE Books

SET sold=1

WHERE titleId=

(SELECT bo.titleId

FROM bookOrders bo INNER JOIN inserted i

ON bo.orderId=i.orderId)

 

Рис.14.16. Приклад тригера для оновлення іншого відношення в разі вставки.

 

В передостанньому рядку використане відношення inserted, по якому ми визначаємо Id щойно проданої книги, та оновлюємо відповідний кортеж у Books. Напряму звернутись до inserted не можна, треба його з’єднати з іншим відношенням.

 


– Конец работы –

Эта тема принадлежит разделу:

Віртуальні таблиці візії. Перейменування атрибутів візії

Перейменування атрибутів візії... Нехай ми маємо намір надати атрибутам візії імена відмінні від успадкованих...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Тригери у Transact SQL

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Визначення візії
Відношення, створене командою CREATE TABLE, є персистентним, тобто таким, що зберігає зміст, допоки не буде явно змінене командами INSERT, DELETE, UPDATE, DROP.   Інша

Активні елементи
Одна з серйозних проблем розробників доданків БД: при оновленні інформації (частіше під час „ручного” введення ) певні елементи інформації стають невірними або входять у протиріччя з іншими елемент

Оголошення первинного ключа
Оголошення певних компонентів у складі первинного ключа означає для них: Ні у яких двох кортежів цього відношення не можуть співпадати кожні пари ключових компонентів одночасно. Спро

Ключі та індекси
Індекс – ланцюжок впорядкованих значень певних атрибутів відношення. Він потрібний для швидкого знаходження певних значень атрибутів у відношенні, на кшталт того, що задає речення WHERE. Створення

Стратегії забезпечення посилальної цілісності
„ Висячі” кортежі, тобто такі, зовнішній ключ яких посилається на неіснуючий власний ключ, потенційно можуть утворюватись при: Додаванні кортежів у відношення зовнішнього ключа;

Обмеження CHECK рівня атрибуту
Більш складне обмеження рівня атрибуту задається службовим словом CHECK, за яким у круглих дужках іде умова, така ж, як у реченні WHERE. Можливе використання підзапитів. Зазвичай так задаються пере

Обмеження CHECK рівня кортежу
Для визначення обмеження, що регламентує склад кортежів відношення R, в оголошенні CREATE TABLE після списку атрибутів, ключів та зовнішніх ключів слід написати CHECK та умову по правилах WHERE у к

Модифікація обмежень
Для модифікації обмеження воно мусить мати ім’я. Для надання імені треба перед оголошенням обмеження поставити слово CONSTRAINT і після нього – ім’я.: Приклад обмеження рівня атрибуту:

Тригери в SQL
Тригери як правила „подія-умова-дія” Тригери ще називають правилами „подія-умова-дія” (event-condition-action rules, ECA rules). Особливості тригерів як обмежень:

Тригери INSTEAD OF
Цієї можливості нема у стандарті SQL-99, але вона є в багатьох комерційних СУБД, зокрема в Ms SQL. Замість слів BEFORE або AFTER ставиться вираз INSTEAD OF, тобто замість, що означає: код ді

Системні збережені процедури
Системні збережені процедури знаходяться в базі даних Master. Як правило, їх імена починаються з префікса sp_. Вони призначені для підтримки функцій SQL Server (зокрема, процедур для робот

Змінні у Transact-SQL
Змінні позначаються префіксом @; наприклад @ MyVariable. Як і тимчасові таблиці, змінні мають дві області дії: локальну та глобальну. Глобальні змінні позначаються подвійним символом @: @ @ VERSION

Виклик збереженої процедури
Для виклику користувацьких і системних збережених процедур використовується оператор EXECUTE. Якщо збережена процедура не вимагає параметрів, або якщо вона не повертає результат, синтаксис її буде

Створення збереженої процедури
Збережені процедури створюються з використанням різновиду оператора CREATE – CREATE PROCEDURE.   CREATE PROCEDURE ім’я_процедури[список_параметрів]AS оператори_процедури

Безпека даних може гарантуватися такими механізмами.
♦ Реєстрація користувачів. Будь-який користувач для отримання доступу до ба­зи даних має бути зареєстрований у системі під певним ім’ям і певним паролем. ♦ Керування правами до

Відміна повноважень
Виконується за допомогою команди REVOKE. Наприклад, REVOKE INSERT ON Orders FROM Adrian; - Відміняє повноваження INSERT для Adrian в таблиці Orders.   1.5. Обов’язко

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

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги