ВУЗ:
Составители:
Рубрика:
Задание 1.7.3. Создать триггер для команд INSERT и UPDATE, запрещающий
производить изменения для автора Billy Geitsi.
Создание и программирование триггера можно выполнить следующим образом:
CREATE TRIGGER auth_ ins_upd ON authsmall
FOR INSERT, UPDATE
AS
IF EXISTS (SELECT * FROM authsmall
WHERE au_lname = ‘Geitsi’ AND au_fname = ‘Billy’)
BEGIN
PRINT ‘Недопустимо написание кнги’ + ‘автором Billy Geitsi’
ROLLBACK TRANSACTION
END
Для тестирования триггера можно попытаться выполнить команды
модификации строк из таблицы и проверить полученные результаты.
UPDATE authsmall SET au_lname = ‘Geitsi’,
au_fname = ‘Billy’ WHERE au_lname = ‘Smith’.
1.8. Создание транзакций
Задание 1.8.1. Создать вложенные
транзакции. Для этого можно выполнить
следующие команды:
CREATE TABLE #aaa (cola int) -- 0-й уровень
BEGIN TRAN -- 1-й уровень
INSERT INTO #aaa VALUES (111)
BEGIN TRAN -- 2-й уровень
INSERT INTO #aaa VALUES (222)
BEGIN TRAN -- 3-й уровень
INSERT INTO #aaa VALUES (333)
SELECT * FROM #aaa
SELECT ‘Вложенность транзакций’, @@TRANCOUNT
ROLLBACK TRAN
SELECT * FROM #aaa -- откат на 0-й уровень
SELECT ‘Вложенность транзакций’, @@TRANCOUNT
Задание 1.7.3. Создать триггер для команд INSERT и UPDATE, запрещающий
производить изменения для автора Billy Geitsi.
Создание и программирование триггера можно выполнить следующим образом:
CREATE TRIGGER auth_ ins_upd ON authsmall
FOR INSERT, UPDATE
AS
IF EXISTS (SELECT * FROM authsmall
WHERE au_lname = ‘Geitsi’ AND au_fname = ‘Billy’)
BEGIN
PRINT ‘Недопустимо написание кнги’ + ‘автором Billy Geitsi’
ROLLBACK TRANSACTION
END
Для тестирования триггера можно попытаться выполнить команды
модификации строк из таблицы и проверить полученные результаты.
UPDATE authsmall SET au_lname = ‘Geitsi’,
au_fname = ‘Billy’ WHERE au_lname = ‘Smith’.
1.8. Создание транзакций
Задание 1.8.1. Создать вложенные транзакции. Для этого можно выполнить
следующие команды:
CREATE TABLE #aaa (cola int) -- 0-й уровень
BEGIN TRAN -- 1-й уровень
INSERT INTO #aaa VALUES (111)
BEGIN TRAN -- 2-й уровень
INSERT INTO #aaa VALUES (222)
BEGIN TRAN -- 3-й уровень
INSERT INTO #aaa VALUES (333)
SELECT * FROM #aaa
SELECT ‘Вложенность транзакций’, @@TRANCOUNT
ROLLBACK TRAN
SELECT * FROM #aaa -- откат на 0-й уровень
SELECT ‘Вложенность транзакций’, @@TRANCOUNT
Страницы
- « первая
- ‹ предыдущая
- …
- 110
- 111
- 112
- 113
- 114
- …
- следующая ›
- последняя »
