Разработка прикладного программного обеспечения деятельности предприятия в системе клиент-сервер
BEGIN
RAISERROR 44447 ‘Добавление и изменение записи не допускается. Правила целостности данных требуют наличия связанной записи в таблице “tblUnivers".'
ROLLBACK TRANSACTION
END
Для таблицы tblPriem:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER TRIGGER [dbo].[T_tblPriem_ITrig] ON [dbo].[tblPriem] FOR INSERT AS
SET NOCOUNT ON
/* * ЗАПРЕТ ВСТАВ
КИ БЕЗ СОВПАДАЮЩЕГО КЛЮЧА В 'tblDoctor' */
IF (SELECT COUNT(*) FROM inserted) !=
(SELECT COUNT(*) FROM tblDoctor, inserted WHERE (tblDoctor.DoctorID = inserted.DoctorID))
BEGIN
RAISERROR 44447 Добавление и изменение записи не допускается. Правила целостности данных требуют наличия связанной записи в таблице "tblDoctor".'
ROLLBACK TRANSACTION
END
/* * ЗАПРЕТ ВСТАВКИ БЕЗ СОВПАДАЮЩЕГО КЛЮЧА В 'tblPacient' */
IF (SELECT COUNT(*) FROM inserted) !=
(SELECT COUNT(*) FROM tblPacient, inserted WHERE (tblPacient.Number = inserted.Number))
BEGIN
RAISERROR 44447 Добавление и изменение записи не допускается. Правила целостности данных требуют наличия связанной записи в таблице "tblPacient".'
ROLLBACK TRANSACTION
END
3.Триггеры на удаление данных
Для моей базы данных были написаны триггеры на удаление для всех таблиц .
Пример:
Для таблицы tblUniversity:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER TRIGGER [dbo].[T_tblUnivers_DTrig] ON [dbo].[tblUnivers] FOR DELETE AS
SET NOCOUNT ON
/* * Каскадные удаления в 'tblDoctor' */
DELETE tblDoctor FROM deleted, tblDoctor WHERE deleted.UniversityID = tblDoctor.UniversityID
Хранимые процедуры
При создании приложения при помощи Microsoft SQL Server язык программирования Transact-SQL является основным программным интерфейсом между приложениями и базой данных Microsoft SQL Server. Использование программ Transact-SQL подразумевает два способа хранения и выполнения.
· Можно хранить программы локально и создавать приложения, отправляющие команды SQL Server и обрабатывающие результаты.
· Можно хранить программы в виде хранимых процедур в SQL Server и создавать приложения, исполняющие хранимые процедуры и обрабатывающие результаты.
Хранимые процедуры в Microsoft SQL Server аналогичны процедурам в других языках программирования:
· они обрабатывают входные аргументы и возвращают вызывающей процедуре или пакету значения в виде выходных аргументов;
· они содержат программные инструкции, которые выполняют операции в базе данных, в том числе вызывающие другие процедуры;
· они возвращают значение состояния вызывающей процедуре или пакету, таким образом передавая сведения об успешном или неуспешном завершении (и причины последнего).
Хранимые процедуры можно выполнять с помощью инструкции Transact-SQL EXECUTE. Хранимые процедуры отличаются от функций тем, что они не возвращают значения на месте своих имен, и их нельзя непосредственно использовать в выражениях.
По сравнению с программами Transact-SQL, которые хранятся локально на клиентских компьютерах, хранимые процедуры SQL Server имеют следующие преимущества.
· Хранимые процедуры регистрируются на сервере.
· Хранимые процедуры могут иметь атрибуты безопасности (например, разрешения) и цепочки владения, кроме того, к ним можно прикреплять сертификаты. Пользователи могут обладать разрешениями на выполнение хранимых процедур вместо прямых разрешений для работы с объектами, на которые ссылаются эти процедуры.
· Хранимые процедуры позволяют сделать защиту приложений более надежной. Параметризованные хранимые процедуры могут защитить приложения от атак, осуществляемых путем инжекции кода SQL.
· Хранимые процедуры поддерживают модульное программирование. Процедуру можно создать один раз и потом по мере необходимости вызывать ее в программе любое число раз. Это делает обслуживание приложения более удобным и позволяет унифицировать доступ приложений к базе данных.
· Хранимые процедуры представляют собой именованный код, дающий возможность отсроченного связывания. Это обеспечивает уровень косвенности, упрощающий развитие программного кода.
· Хранимые процедуры позволяют уменьшить сетевой трафик. Операцию, занимающую сотни строк программного кода Transact-SQL, можно выполнить в одной инструкции, которая обрабатывает процедуру, а не отправляет этот код по сети.
Для создания хранимой процедуры находим нужную нам базу данных, раскрываем ее, щелкаем правой кнопкой на вкладку «Programmability»,там находим вкладку «Stored Procedures» и нажимаем «New Stored Procedure»:
Для Выполнения процедуры необходимо найти ее во вкладке «Stored Procedures» , нажать ПКМ и выбрать «Execute Stored Procedure»
Примеры хранимых процедур:
1) set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
--Запрос для вывода списка пациентов проживающих в определенном районе
ALTER PROCEDURE [dbo].[DistrPacient]
AS
BEGIN
SELECT tblDistrict.District, tblPacient.PacientSurname, tblPacient.PacientName
FROM tblDistrict INNER JOIN
tblPacient ON tblDistrict.DistrictID = tblPacient.DistrictID
WHERE tblDistrict.DistrictID = tblPacient.DistrictID
END
2) set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
--Запрос для вывода врачей и обслуживаемых ими пациентов.
ALTER PROCEDURE [dbo].[DoctorPacient]
AS
BEGIN
SELECT dbo.tblPacient.PacientSurname, dbo.tblPacient.PacientName, dbo.tblPacient.PolicyNumber, dbo.tblDoctor.LastName, dbo.tblDoctor.FirstName
FROM dbo.tblPacient, dbo.tblDoctor
WHERE dbo.tblPacient.DoctorID = dbo.tblDoctor.DoctorID
END
3) set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
--Запрос для вывода льшот у конкретных пациентов.
ALTER PROCEDURE [dbo].[ExcemptPacient]
AS
BEGIN
SELECT tblLgota.ExemptType, tblLgota.Exempt, tblPacient.PacientSurname, tblPacient.PacientName
FROM tblPacient INNER JOIN
tblLgota ON tblPacient.ExemptID = tblLgota.ExemptID
END
Представления
Представление — это виртуальная таблица, содержимое которой определяется запросом. Как и настоящая таблица, представление состоит из совокупности именованных столбцов и строк данных. Пока представление не будет проиндексировано, оно не существует в базе данных как хранимая совокупность значений. Строки и столбцы данных извлекаются из таблиц, указанных в определяющем представление запросе и динамически создаваемых при обращениях к представлению.
Представление выполняет функцию фильтра базовых таблиц, на которые оно ссылается. Определяющий представление запрос может быть инициирован в одной или нескольких таблицах или в других представлениях текущей или других баз данных.
Для создания представления находим нужную нам базу данных, раскрываем ее, щелкаем правой кнопкой на вкладку «Views» и нажимаем «New View»:
Другие рефераты на тему «Программирование, компьютеры и кибернетика»:
Поиск рефератов
Последние рефераты раздела
- Основные этапы объектно-ориентированного проектирования
- Основные структуры языка Java
- Основные принципы разработки графического пользовательского интерфейса
- Основы дискретной математики
- Программное обеспечение системы принятия решений адаптивного робота
- Программное обеспечение
- Проблемы сохранности информации в процессе предпринимательской деятельности