Синтаксис вызова: Viborka 'ФАИС'
3. Триггеры.
3.1 Триггеры должны выполнять следующую обработку данных:
отправка клиенту сообщения при добавлении данных в таблицу Студенты;
CREATE TRIGGER [dbo].[Insert2]
ON [dbo].[Студенты]
AFTER INSERT /* при попытке добавить данные*/
AS
BEGIN
SET NOCOUNT ON;
RAISERROR ('Добавить данные нельзя', 15,1)
END
Данный триггер запускается автоматически, при добавлении данных в таблицу Студенты. Выводится сообщение «Добавить данные нельзя»
3.2Триггеры должны выполнять следующую обработку данных:
Отменить удаление строк в таблице Студенты и вывести сообщение об ошибке
CREATE TRIGGER [dbo].[nodelete]
ON [dbo].[Студенты]
INSTEAD OF DELETE
AS
DELETE FROM Студенты
WHERE КодСтудента IN (SELECT КодСтудента FROM deleted)
IF(@@ERROR>0)
BEGIN
ROLLBACK TRANSACTION
raiserror('Ошибка удаления из таблицы студенты!',16,3)
RETURN
END
3.3Создать DDL триггер, запрещающий удалять таблицы из БД с выводом соответствующего сообщения
CREATE TRIGGER [DDLTrigger]
ON DATABASE
FOR DROP_TABLE
AS
BEGIN
PRINT 'Запрещено удаление таблиц'
ROLLBACK;
END
Go
DROP TABLE dbo.Платежи
Данный триггер запускается автоматически, при удалении таблиц из БД. Выводится сообщение «Запрещено удаление таблиц»
Попытка удаление таблицы: DROP TABLE dbo.Платежи
4. Курсоры
‒ Статический курсор(вывод данных)
USE laba
GO
--Объявление курсора
DECLARE ACursor CURSOR LOCAL STATIC
FOR SELECT ФИО, СокрНазФак FROM dbo.Студенты
DECLARE @Fam nchar(10), @facultet nchar(10)
--Открытие курсора
OPEN ACursor
--Выборка данных из курсора(3-ей строки)
FETCH ABSOLUTE 3 FROM ACursor
INTO @Fam, @facultet
-- Вывод значения переменных
PRINT 'ФИО '+@Fam +' Факультет '+@facultet
--Закрытие курсора
CLOSE ACursor
--Освобождение курсора
DEALLOCATE ACursor
Используется для вывода фамилии и факультета третьего студента из списка. Для начала описываем курсор инструкцией DECLARE, задаём атрибут LOCAL STATIC. Описываем переменные, которые будут получать данные. Открываем курсор. Забираем значения из курсора и помещаем их в объявленные переменные. Выводим сформированную строку.
‒ Динамический курсор (вывод данных)
DECLARE ACursor2 CURSOR
LOCAL
FOR SELECT ФИО, СокрНазФак, Группа FROM dbo.Студенты
--Открытие курсора
OPEN ACursor2
--Выборка данных(первая строка из таблицы Платежи)
FETCH ACursor2
--Закрытие курсора
CLOSE ACursor2
--Освобождение курсора
DEALLOCATE ACursor2
Используется для вывода фамилии , факультета и группы первого студента из списка. Для начала описываем курсор инструкцией DECLARE, задаём атрибут LOCAL. Описываем переменные, которые будут получать данные. Открываем курсор. Забираем значения из курсора и помещаем их в объявленные переменные. Выводим сформированную строку.
‒ Выборки данных
DECLARE ACursor4 CURSOR
LOCAL
FOR SELECT ФИО, СокрНазФак, Группа FROM dbo.Студенты
WHERE ФИО='Иванова'
--Открытие курсора
OPEN ACursor4
--Выборка данных(первая строка из таблицы Платежи)
FETCH ACursor4
--Закрытие курсора
CLOSE ACursor4
--Освобождение курсора
DEALLOCATE ACursor4
Используется для вывода ФИО,названия факультета и группы заданного студента из списка. Для начала описываем курсор инструкцией DECLARE, задаём атрибут LOCAL. Выбираем из таблицы «Студенты» значения полей ФИО. Открываем курсор. Забираем значения из курсора. Выводим сформированную строку.
‒ Модификации данных
USE laba
GO
--Объявление курсора
DECLARE ACursor3 CURSOR LOCAL
FOR SELECT ФИО, ДатаРождения FROM dbo.Студенты
--Открытие курсора
OPEN ACursor3
--Выборка данных из курсора(3-ей строки)
FETCH FROM ACursor3
UPDATE Студенты SET ФИО='Сидаров'
WHERE CURRENT of ACursor3
-- Вывод обновленной строки
SELECT ФИО, ДатаРождения FROM Студенты
WHERE ДатаРождения=CONVERT(date, '1994-01-01')
--Закрытие курсора
CLOSE ACursor3
--Освобождение курсора
DEALLOCATE ACursor3
Используется для изменения ФИО . Для начала описываем курсор инструкцией DECLARE, задаём атрибут LOCAL. Открываем курсор. Забираем значения из курсораи обновляем полученное значение. Выводим новую строку.
Вывод работы: изучили технологию создания основных объектов БД, разработки программных модулей в СУБД MS SQL Server. Разработали DDL- и DМL-триггеры, создали курсоры вывода данных, одновление и выборки, а так же создали скалярные функции.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.