Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Кафедра ЕОМ
/
Звіт
до лабораторної роботи № 4
з дисципліни: «Організація баз даних»
«Використання збережених процедур та синонімів для переливки даних між базами»
Варіант №11
Мета роботи: Отримати навики використання збережених процедур та синонімів
Завдання:
На існуючому сервері створити ще одну базу даних із назвою <навзва_попередньої_>report
До щойно створеної бази даних додати 2 таблиці для збереження звітної інформації (Наприклад якщо у вас є база даних Supermarket із таблицями Products, Customers, Transactions потрібно створити ще одну базу Supermarket_report із таблицями Products_Report, Transactions_Report. Нові таблиці мають мати такий самий список колонок, що і попередні)
Створити збережену процедуру (stored procedure) із одним цілочисельним параметром. До створеної процедури додати код за допомогою якого дані будуть копіюватись з однієї бази у іншу. Придумати умову для переливання даних. Процедуру зберегти у базі даних, що використовувалась у попередніх лабораторних роботах. (Приклад виконання наведено нижче).
У базі даних <навзва_попередньої_>report створити синонім на попередньо створену збережену процедуру.
Варіант № 11 - База даних цирку
Створення нової БД та таблиць:
create database Circus_report
use Circus_report
go
CREATE TABLE CUST_report (
ID INT PRIMARY KEY,
FirstName VARCHAR (25),
SecondName VARCHAR (25));
CREATE TABLE TICKET_report (
TicketID INT PRIMARY KEY,
CustomerID INT,
ShowNum INT);
CREATE TABLE SHOW_report (
ShowID INT PRIMARY KEY,
ShowName VARCHAR (45),
date_n_time DATETIME,
);
CREATE TABLE REF_TICK_SHOW_report (
ticket_id INT,
show_id INT,
PRIMARY KEY (ticket_id , show_id )
);
CREATE TABLE SHOW_PRICE_report (
Price REAL PRIMARY KEY,
show_id INT
);
Створення процедури та синоніму:
use Circus_2
go
create procedure dbo.CopyData
@KeyColumn int
as
begin
insert into Circus_report.dbo.CUST_report
select * from Circus_2.dbo.CUST
where ID < @KeyColumn
insert into Circus_report.dbo.TICKET_report
select * from Circus_2.dbo.TICKET
where TicketID > @KeyColumn
insert into Circus_report.dbo.SHOW_report
select * from Circus_2.dbo.SHOW
where ShowID <= @KeyColumn
insert into Circus_report.dbo.REF_TICK_SHOW_report
select * from Circus_2.dbo.REF_TICK_SHOW
where show_id < @KeyColumn
insert into Circus_report.dbo.SHOW_PRICE_report
select * from Circus_2.dbo.SHOW_PRICE
where Price < @KeyColumn
end
go
use Circus_report
go
create synonym dbo.SynCopyData for Circus_2.dbo.CopyData
Виконання процедури:
use Circus_2
go
exec dbo.CopyData @KeyColumn = 1005
CUST_report TICKET_report SHOW_report
/ / /
REF_TICK_SHOW_report SHOW_PRICE_report
/ /
Висновок. На даній лабораторній роботі я отримала навики використання збережених процедур та синонімів