Методические рекомендации для выполнения практических работ Функции и хранимые процедуры используются в sql server для реализации


PRINT ‘Содержимое таблицы authsmoll:’



жүктеу 61,18 Kb.
бет8/8
Дата15.12.2023
өлшемі61,18 Kb.
#44717
түріМетодические рекомендации
1   2   3   4   5   6   7   8
ПРАКТИЧЕСКАЯ РАБОТА 10-11

PRINT ‘Содержимое таблицы authsmoll:’ SELECT * FROM authsmall

  1. Создание и программирование триггера:

CREATE TRIGGER auth_del ON authsmall
FOR DELETE AS
PRINT ‘Попытка удаления’ + STR (@@ POWCOUNT)+
строк в таблице authsmall’
PRINT ‘Пользователь’ + CURRENT_USER IF CURRENT_USER <> ‘dbo’
BEGIN
PRINT ‘Удаление запрещено’ ROLLBACK TRANSACTION END
ELSE
PRINT ‘Удаление разрешено’

  1. Тестирование триггера :

DELETE FROM authsmall WHERE au_fname = ‘Johnson’ DELETE FROM authsmall WHERE 2*2=5
Задание 2. Создать триггер auth_upd для таблицы authsmall, построенный в первом задании, который будет разрешать изменение столбца au_id этой таблицы всем, кроме владельца dbo, выполнив следующие действия:

  1. Создание и программирование триггера:

CREATE TRIGGER auth_upd ON authsmall
FOR UPDATE AS
SET NOCOUNT ON -- не сообщать о завершении команд; PRINT ‘Попытка изменения данных в таблице authsmall’ IF (COLUMNS_UPDATE () &1)! = 0 -- 1-й столбец;
PRINT ‘Изменение столбца au_id’
IF (COLUMNS_UPDATE () &2)! = 0 -- 2-й столбец;
PRINT ‘Изменение столбца au_fname’
IF (COLUMNS_UPDATE () &4)! = 0 -- 3-й столбец;
PRINT ‘Изменение столбца au_lname’ IF UPDATE (Phone)
PRINT ‘Изменение столбца phone’
IF ((CURRENT_USER = ‘dbo’) AND (COLUMNS_UPDATED()&1)! = 0 -- 1-ый стлбец; BEGIN
PRINT ‘Пользователь dbo не может изменять’ + ‘идентификационный номер автора’
ROLLBACK TRANSACTION END



  1. Тестирование триггера:

UPDATED authsmall SET phone =‘415 986 - 7020’, au_fname = ‘John’ WHERE au_lname = ‘Green’
UPDATED authsmall SET phone =‘913 843 - 7302’, au_id = ‘748-126859’ WHERE au_lname = ‘Smith’


Задание 3. Создать триггер для команд INSERT и UPDATE, запрещающий производить изменения для автора Billy Geitsi, выполнив действия:

  1. Создание и программирование триггера:

CREATE TRIGGER auth_ ins_upd ON authsmall
FOR INSERT, UPDATE AS
IF EXISTS (SELECT * FROM authsmall -- inserted; WHERE au_lname = ‘Geitsi’ -- фамилия;
au_fname = ‘Billy’) -- имя; BEGIN
PRINT ‘Недопустимо написание кнги’+ ‘автором Billy Geitsi’
ROLLBACK TRANSACTION END

  1. Тестирование триггера:

UPDATE authsmall SET au_lname = ‘Geitsi’, au_fname = ‘Billy’ WHERE au_lname = ‘Smith’.
жүктеу 61,18 Kb.

Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау