Добавил:
Меня зовут Катунин Виктор, на данный момент являюсь абитуриентом в СГЭУ, пытаюсь рассортировать все файлы СГЭУ, преобразовать, улучшить и добавить что-то от себя Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный_практикум_по_АБД_sqlserver.docx
Скачиваний:
5
Добавлен:
03.08.2023
Размер:
496.52 Кб
Скачать

3. Создание триггера, который поддерживает сложные бизнес-правила

Текст данного триггера приведен ниже.

USE Northwind

GO

CREATE TRIGGER Product_Delete

ON NewProducts FOR DELETE

AS

IF (Select Count (*)

FROM [Order Details] INNER JOIN deleted

ON [Order Details].ProductID = Deleted.ProductID

) > 0

BEGIN

RAISERROR(‘Транзакция не может быть выполнена, т.к. в таблице Order Details существуют заказы данного продукта’, 10, 1)

ROLLBACK TRANSACTION

END

go

/* тестирование триггера */

DELETE NewProducts WHERE ProductID = 6

Выполните сначала часть программы, которая создает триггер, а затем протестируйте его. Сохраните текст триггера в отчете.

Создайте системное сообщение об ошибке с указанием в нем кода продукта (ProductID). Откорректируйте приведенную выше программу, используя в команде возбуждения ошибки номер созданного Вами сообщения. Протестируйте триггер еще раз.

Тестирование порядка выполнения триггеров и ограничений

  1. Создайте триггер с именем Product_Delete2 для таблицы Products, аналогичный тому, который Вы использовали в предыдущем упражнении. Можете подкорректировать текст предыдущей программы.

  2. Протестируйте триггер с помощью команды DELETE (см. предыдущее упражнение) Проработал ли данный триггер для таблицы Products? Почему да или почему нет?

Приложения

Приложение 1

Управление файлами данных

Рис.1. Физическая архитектура базы данных

Рис.2. Пример размещения базы данных в разных группах файлов на разных дисках

Команды создания и изменения базы данных kadry_new1

Use master

Create database kadry_new1

По умолчанию создаются два файла, которые будут иметь следующие имена и размещены по следующим адресам:

C:\Program Files\Microsoft SQL Server\MSSQL\data\kadry_new1.mdf

C:\Program Files\Microsoft SQL Server\MSSQL\data\kadry_new1_log.LDF

Exec sp_helpdb kadry_new1—просмотр сведений о базе данных

/* добавляем к базе данных файловую группу*/

ALTER DATABASE kadry­_new1

ADD FILEGROUP kadryFG1

GO

/* добавляем в группу два файла*/

ALTER DATABASE kadry­_new1

ADD FILE

( NAME =kadry_data2,

FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\ kadry_data2.ndf ',

SIZE = 5MB,

MAXSIZE = 100MB,

FILEGROWTH = 5MB),

( NAME= kadry_data3 ,

FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\ kadry_data3.ndf’ ,

SIZE = 5MB,

MAXSIZE = 100MB,

FILEGROWTH = 5MB)

TO FILEGROUP kadryFG1

ALTER DATABASE kadry­_new1

/*назначаем группу группой по умолчанию*/

MODIFY FILEGROUP kadryFG1 DEFAULT

Приложение 2

Управление безопасностью sql Server

Таблица 1

Фиксированные серверные роли sql Server

Роль

Назначение

Права и разрешенные команды

Database Creators

(dbcreator)

Создание и модификация баз данных

Добавление членов роли

dbcreator

ALTER DATABASE

CREATE DATABASE

DROP DATABASE

RESTORE DATABASE RESTORE LOG

Увеличение пространства, занимаемого базой данных.

Переименовние БД

sp_renamedb

Disk Administrators

(diskadmin)

Управление файлами

Добавление членов роли

diskadmin

DISK INIT

Выполнение процедур

.sp_addumpdevice sp_diskdefault sp_dropdevice

Process Administrators

(processadmin)

Управление процессами

Добавление членов роли

processadmin

KILL

Security Administrators

(securityadmin)

Управление защитой

Добавление членов роли

securityadmin GRANT/DENY/REVOKE

Предоставление прав на

CREATE DATABASE

Чтение журнала ошибок.

Выполнение процедур:

sp_addlinkedsrvlogin

sp_addlogin

sp_defaultdb

sp_defaultlanguage

sp_denylogin

sp_droplinkedsrvlogin

sp_droplogin

sp_dropremotelogin

sp_grantlogin

sp_helplogins

sp_password

sp_remoteoption (обновление опций)

sp_revokelogin

Server Administrators

(serveradmin)

Конфигурирование SQL Server

Добавление членов роли

serveradmin

DBCC FREEPROCCACHE

RECONFIGURE

SHUTDOWN

sp_fulltext_service

sp_configure

sp_tableoption

Setup Administrators

(setupadmin)

Управление связанными серверами

Добавление членов роли

setupadmin

Добавление, удаление, настройка связанных серверов

Назначение хранимых процедур, выполняемых при запуске SQL Server

System Administrators

(sysadmin)

Универсальное

Выполнение любых действий в SQL Server

Таблица 2