insert into klient values (@Name, @telefon, @e_mail,@login,@pass)
end
declare @login varchar(20), @pass varchar(20)
exec registr 'Дорогин В.С.', '9095417451', 'dorogin@mail.ru', @login, @pass
Процедура бронирования билета на мероприятие.
Входные параметры: логин и пароль клиента, название театра, название мероприятия, дата и время мероприятия, тип билета.
Выходные параметры: код завершения процедуры, зрительское место, ряд, цена билета. Возможные значения кода завершения:
0 – процедура завершена успешно;
1 – логин или пароль введены неправильно;
2 – название театра указано неправильно;
3 – указанное мероприятие не проходит в данном театре в указанное время;
create proc bronirovanie
@login varchar(20),
@pass varchar(20),
@mer_name varchar(20),
@theatre_name varchar(20),
@datetime datetime,
@tip varchar(20),
@status varchar(20),
@mesto int,
@result int output
as
begin
declare @id_klient int, @id_theatre int, @id_theatre_meropriyatie int
set @id_klient = (select id_klients from klient where _login = @login and _password = @pass)
if @id_klient is null
begin
set @result = 1
return
end
set @id_theatre = (select id_theatres from theatre where theatre_name = @theatre_name )
if @id_theatre is null
begin
set @result = 2
return
end
set @id_theatre_meropriyatie = (select id_meropriyaties from theatre_meropriyatie where _datetime = @datetime )
if @id_theatre_meropriyatie is null
begin
set @result = 3
return
end
update ticket set _status_bileta = 'Резерв' where _tip=@tip and _status=@status and _mesto=@mesto
set @result = 0
end
declare @res int
exec bronirovanie 'Petrovv','q78awsed','Дон-Жуан','Мариинский','2010-10-11 19:00:00','Сидящий','Ложи','75',@res
if @res = 0
print 'процедура завершена успешно'
else if @res = 1
print 'логин или пароль введены неправильно'
else if @res = 2
print 'название театра указано неправильно'
else if @res = 3
print 'указанное мероприятие не проходит в данном театре в указанное время'
select theatre_name, _nazvanie, _datetime, _status, _mesto, _tip, _status_bileta
from theatre, meropriyatie, theatre_meropriyatie, ticket_meropriyatie, ticket
where theatre.id_theatres=theatre_meropriyatie.id_theatres and meropriyatie.id_meropriyaties=theatre_meropriyatie.id_meropriyaties and
ticket_meropriyatie.id_meropriyaties=theatre_meropriyatie.id_meropriyaties and ticket_meropriyatie.id_tickets=ticket.id_tickets
Процедура удаления данных о билетах давностью 1 год и более.
Процедура не имеет входных параметров.
Выходной параметр процедуры – количество удаленных билетов.
create proc delet_bilet
as
begin
delete from theatre_meropriyatie where year(theatre_meropriyatie._datetime) < year(GETDATE ()) -1 end
Логин и пароль клиента – уникальны и не могут быть неопределенными.
σ count(*)>1(γ(named,fio)(π(fio,named)(books >< book_avtors >< avtors) = 0
_login varchar(30)unique not null,
_password varchar(30)unique not null,
Разные мероприятия не проходят в одно время и в одном месте.
σ(named)>1(γ(named)(publishes)) = 0
named varchar(20)unique
σ(inn)>1(γ(inn)(publishes)) = 0
inn varchar(15)unique
σ(adress)>1(γ(adress)(publishes)) = 0
address varchar(60)unique
σ(telefone)>1(γ(telefone)(publishes)) = 0
telefon varchar(15)unique
σ(fax)>1(γ(fax)(publishes)) = 0
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.