- •Правила Кодда для olap систем
- •Основні елементи і операції olap
- •Типи olap. Переваги і недоліки
- •Проектування мереж робочої групи (інженерний підхід)
- •Топологія мережі – зірка або кільце.
- •Способи і засоби збільшення пропускної здатності лвс
- •Поняття про технологію corba
- •Об’єктна архітектура розподілених систем. Поняття про технологію .Net
- •Об’єктні моделі corba і com. Основні відмінності
- •Ідентифікація об’єктів corba і com в мережі. Основні відмінності
- •Основні вбудовані об’єктні служби corba і com
- •Основні об’єкти. Збережені процедури і функції
- •Повернення результатів
Повернення результатів
Збережені процедури повідомляють свій "статус повернення", який вказує, чи була виконана процедура повністю, чи ні, а також причини невдачі. Це значення може зберігатися у змінній, яка передається процедурі при її виклику, і використовуватися в наступних операторах Transact-SQL. Інший спосіб повернення інформації з збережених процедур полягає в поверненні значень через вихідні параметри. Параметри, визначені як вихідні, в операторі create procedure (створити процедуру) або execute (виконати) використовуються для повернення значень в місце виклику процедури. Потім за допомогою умовних операторів можна перевірити значення, яке повертається.
Код повернення і вихідні параметри дозволяють розділити збережені процедури на модулі. Група SQL операторів, які використовуються декількома збереженими процедурами, можуть бути об’єднані в одну процедуру, яка повідомляє свій статус виконання або значення своїх параметрів викликає процедурі. Наприклад, багато системних процедури, що поставляються з SQL сервером, звертаються до процедури, яка перевіряє чи є зазначені параметри правильними ідентифікаторами.
Якщо в операторах create procedure і execute вказується опція output в назві параметра, то процедура повертає значення цього параметра викликає об’єкту. Цим об’єктом може бути SQL пакет або інша процедура, що зберігається, які використовують повернені значення в своїй подальшій роботі. Якщо повертаються параметри використовуються в операторі execute, який є частиною пакета, то значення, що повертаються параметрів разом з заголовком виводяться на екран перед виконанням наступних операторів пакета.
declaretranName DObjectName
declareretCode integer
begin
execute tran_BegintranName output
selecttranName
Лекція 11:
Тригери. Основні поняття. Типи тригерів. Загальна схема активізації тригерів
Тригер – це виконуваний модуль, прив’язаний до об’єкта бази даних і події, пов’язаної з цим об’єктом. Тригер викликається неявно при виникненні події над цим об’єктом. Тригери мають наступні характеристики:
• Тип тригера – DDL або DML
• Об’єкт – таблиця, VIEW, системний об’єкт для DDL тригерів
• Подія – insert, update, delete для таблиці і DML, instead of для VIEW або системна подія для DDL тригерів.
• Спосіб активації – для всього оператора або для кожного рядка
• Час активації – до або після виконання оператора.
Тригери в T–SQL по функціональності біднішими тригерів в Oracle. У SQL Server існують тільки after або instead of тригери, що викликаються для всього оператора.
Тригери SQL Server
Створення тригерів
create trigger trg
on my_table
for insert, update, delete
as
select "this is trigger"
Синтаксис команди створення тригера create trigger
create trigger [власник.] названіе_тріггера
on [власник.] названіе_табліци
for {insert, update, delete}
as SQL_оператори
create trigger [власник.] названіе_тріггера
on [власник.] названіе_табліци
for {insert, update}
as
[If update (названіе_столбца) [{and | or}
update (названіе_столбца)] ...]
SQL_оператори
[If update (названіе_столбца) [{and | or}
update (названіе_столбца)] ...
SQL_оператори] ...
CREATE trigger dbo.TD_Inscribe on Inscribe
for DELETE
as
begin
delete PP_S_ImageObject
where PP_S_ImageObject.ImageObjectID in
(Select deleted.PhotoID from deleted)
delete from
ImageObject
where
ImageObject.ImageObjectID in
(Select deleted.PhotoID from deleted)
end
видалення тригерів
Команда видалення тригера drop trigger має наступний вигляд:
drop trigger [власник.] названіе_тріггера
[, [Власник.] Названіе_тріггера] ...
Таблиці INSERTED і DELETED
Коли викликаються тригери використовуються дві спеціальні таблиці: таблиця видалення (deleted table) і таблиця додавання (inserted table). Вони використовуються для перевірки операторів модифікації даних і створення умов для роботи тригерів. Користувач не може безпосередньо змінювати дані в цих таблицях, але може використовувати що знаходиться в них інформацію для перевірки наслідків виконання операторів insert, update або delete.
У таблиці deleted зберігаються копії рядків, які видаляються операторами update або delete. В процесі виконання цих операторів рядки видаляються з критичною таблиці і поміщаються в таблицю видалення. Зазвичай тригерна таблиця і таблиця видалення не мають спільних рядків.
У таблиці inserted зберігаються копії рядків, які вставляються операторами insert або update. В процесі виконання цих операторів нові рядки вставляються в таблицю додавання і тригерну таблицю одночасно. Таким чином, таблиця додавання завжди містить копії нових рядків, які були додані в тригерну таблицю.
CREATE trigger dbo.TU_Inscribe on Inscribe
for UPDATE
as
begin
if exists (
select
1
from
deleted, inserted
where
deleted.IdentifyDocumentID = inserted.IdentifyDocumentID
and deleted.InscribeID = inserted.InscribeID and
deleted.PhotoID is not null and inserted.PhotoID is null
)
begin
delete PP_S_ImageObject
where
PP_S_ImageObject.ImageObjectID in
(select
deleted.PhotoID
from
deleted, inserted
where
deleted.IdentifyDocumentID = inserted.IdentifyDocumentID
and deleted.InscribeID = inserted.InscribeID and
deleted.PhotoID is not null and inserted.PhotoID is null
)
delete
ImageObject
from
ImageObject
where
ImageObject.ImageObjectID in
(select
deleted.PhotoID
from
deleted, inserted
where
deleted.IdentifyDocumentID = inserted.IdentifyDocumentID
and deleted.InscribeID = inserted.InscribeID and
deleted.PhotoID is not null and
inserted.PhotoID is null
)
end
end
