N
Пользованіе_бібліотекой2 ON Примірник. Шифр = Пользованіе_бібліотекой2. Шифр) INNER JOIN
Студенти ON Пользованіе_бібліотекой2. Чітательскій_номер = Студенти. Чітательскій_номер) INNER JOIN
Сотруднікі_бібліотекі ON Пользованіе_бібліотекой2. Табельний_номер = Сотруднікі_бібліотекі. табельный_номерСотрудники_библиотеки. табельний_номер LIKE '11 [] '
15. Інформація про користування бібліотекою її співробітниками.
CREATE VIEW InfoOPolzovaniiCotrydnikovСотрудники_библиотеки. ім'я, Сотруднікі_бібліотекі. прізвище, Книга. Автор, Книга. НазваниеСотрудники_библиотеки INNER JOIN ((Книга INNER JOIN Примірник ON Кніга.ISBN = Екземпляр.ISBN) JOIN Пользованіе_бібліотекой1 ON Примірник. Шифр ​​= Пользованіе_бібліотекой1. Шифр) Сотруднікі_бібліотекі. табельний_номер = Пользование_библиотекой1.табельный_номер
3.3 T-SQL-визначення тригерів
1. Тригер, який заборонятиме видалення записів таблиці "Користування бібліотекоюВ», якщо поточний користувач не власник бази даних і якщо поле В«дата видачіВ» містить яке-небудь значення.
CREATE TRIGGER udalenie /* обьявлять ім'я тригера */
ON Пользованіе_бібліотекой2 /* Вказуємо ім'я таблиці, з якої буде пов'язаний тригер */
FOR DELETE /* Вказуємо операцію, на кіт. буде спрацьовувати тригер (тут на видалення) */
AS
IF (SELECT count (*) /* перевіряє записи з таблиці В«Користування бібліотекоюВ» */ Пользованіе_бібліотекой2
where Пользование_библиотекой2.дата_выдачи is not null)> 0 /* умова перевіряє наявність запису в полі В«дата видачіВ». Якщо count повертає значення відмінне від нуля (означає, що запис є) то перша умова IF не виконане */
AND (CURRENT_USER <> 'dbo') /* викликається функція визначення імені поточного користувача і перевіряється, власник чи він */
BEGIN В«у вас немає прав на видалення цього записуВ» /* видача повідомлення про невдачу операції */ span>
ROLLBACK TRANSACTION /* відкат (скасування) транзакції */
END
2. Перевіряє правильність номера відділу. Існує лише 5 відділів, яким присвоюються номери від 10 до 14 включно.
CREATE TRIGGER dobavlenieОтделиINSERT
DECLARE @ @ f int /* Оголошуємо змінну */ <...