Administracja i programowanie pod Microsoft SQL Server 2000



Podobne dokumenty
Oracle PL/SQL. Paweł Rajba.

Administracja i programowanie pod Microsoft SQL Server 2000

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

050 SQL ELEMENTY ZAAWANSOWANE. Prof. dr hab. Marek Wisła

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Cele. Definiowanie wyzwalaczy

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Aspekty aktywne baz danych

Tworzenie widoku CREATE OR REPLACE VIEW [nazwa_widoku] AS SELECT [nazwy_kolumn] FROM [nazwa_tablicy];

Używany kiedy pełna treść instrukcji SQL jest nieznana przed uruchomieniem programu.

Administracja i programowanie pod Microsoft SQL Server 2000

Bazy danych 6. Klucze obce. P. F. Góra

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

Paweł Rajba

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

1. Wyzwalacze BD (ang. triggers)

Bazy danych - Materiały do laboratoriów VIII

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Oracle PL/SQL. Paweł Rajba.

Zaawansowane bazy danych i hurtownie danych semestr I

Przykład 3 Zdefiniuj w bazie danych hurtownia_nazwisko przykładową funkcję użytkownika fn_rok;

Oracle PL/SQL. Paweł Rajba.

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze

SQL 4 Structured Query Lenguage

PODSTAWY BAZ DANYCH 13. PL/SQL

Oracle PL/SQL. Paweł Rajba.

Wykład 8. SQL praca z tabelami 5

Bazy danych wykład szósty Więzy i wyzwalacze. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

BAZY DANYCH Cz III. Transakcje, Triggery

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

Wyzwalacze TWORZENIE WYZWALACZY

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

Systemowe aspekty baz

Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe

Oracle PL/SQL. Paweł Rajba.

Wyzwalacze. Anna Fiedorowicz Bazy danych 2

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

Administracja i programowanie pod Microsoft SQL Server 2000

PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

Tworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

Oracle11g: Wprowadzenie do SQL

Bazy danych 10. SQL Widoki

Bazy Danych i Usługi Sieciowe

Plan wykładu BAZY DANYCH II WYKŁAD 8. Wyzwalacze. Wyzwalacze

Uprawnienia, role, synonimy

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba.

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

Administracja i programowanie pod Microsoft SQL Server 2000

CREATE USER

Bazy danych i usługi sieciowe

Przykładowa baza danych BIBLIOTEKA

Bazy danych, 4. wiczenia

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Wprowadzenie. Tworzenie widoków

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

Paweł Rajba

Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu):

Język PL/SQL. Rozdział 6. Procedury wyzwalane

LAB 6 BEGIN TRANSACTION, COMMIT, ROLLBACK, SET TRANSACTION ISOLATION LEVEL,

1: 2: 3: 4: 5: 6: 7: 8: 9: 10:

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl

Programowanie po stronie serwera w SZBD. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW

BAZA DANYCH SIECI HOTELI

Elementy. języka SQL

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Wyzwalacze (triggery) Przykład

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Microsoft SQL Server. Tradycyjna architektura klientserwer. Przeniesienie części logiki na serwer. Programowanie Transact SQL

Procedury wyzwalane. Rozdział 13. Procedury wyzwalane. Cele stosowania procedur wyzwalanych. Definiowanie procedury wyzwalanej DML

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Ustawienie na poziomie sesji (działa do zmiany lub zakończenia sesji zamknięcia połączenia).

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

Wykład 2. SQL 1 Structured Query Lenguage

Język SQL. Rozdział 8. Język manipulowania danymi DML

ACESS- zadania z wykorzystaniem poleceń SQL

Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

Hurtownia Świętego Mikołaja projekt bazy danych

PL/SQL. Zaawansowane tematy PL/SQL. Piotr Medoń

Plan ćwiczenia. Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych. Użytkownicy i schematy (1) Użytkownicy i schematy (2) baza danych: ZESP99

Język SQL, zajęcia nr 1

Administracja i programowanie pod Microsoft SQL Server 2000

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

kończy wysyłanie danych do pliku tworzy strukturę tabeli wyświetla opis struktury tabeli zmiana nazwy tabeli usuwanie tabeli

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

na MS SQLServer 2005 i 2008

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Transkrypt:

Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/

Zawartość modułu 6 Wyzwalacze Wprowadzenie Tworzenie wyzwalacza Wyzwalacze typu,,po'' Wyzwalacze typu,,zamiast'' Zarządzanie wyzwalaczami Zależności referencyjne Jeszcze raz rekurencja - 1 -

Wprowadzenie Po co stosujemy wyzwalacze obsługa bardziej złożonych zależności referencyjnych (np. klauzule check nie wystarczają) bardziej złożone usuwanie kaskadowe śledzenie zmian, rejestrowanie zachodzących akcji wywoływanie akcji wewnętrznych np. wysłanie maila do osoby odpowiedzialnej za zamówienia w przypadku niskiego stanu towaru w magazynie - 2 -

Wprowadzenie SQLServer ma dwa rodzaje wyzwalaczy wyzwalacze typu,,po'' wyzwalacze typu,,zamiast'' Wyzwalacze mogą być uruchamiane w związku z pojawieniem się każdej z poniższych instrukcji INSERT UPDATE DELETE - 3 -

Tworzenie wyzwalacza Przykładowa składnia CREATE TRIGGER trigger_name ON { table view } { { FOR AFTER INSTEAD OF } { [ INSERT ] [,] UPDATE ] [,] DELETE ] } AS BEGIN treść wyzwalacza END Włączanie i wyłączanie wyzwalaczy ALTER TABLE nazwa { ENABLE DISABLE } TRIGGER { ALL trigger_name [,...n ] } - 4 -

Wyzwalacze typu,,po'' Są to domyślnie tworzone wyzwalacze Poprzez zmienną @@rowcount mamy informację o ilość zmodyfikowanych wierszy Dostęp do obrazu tabeli przed i po wykonaniu instrukcji jest poprzez wirtualne tabele inserted deleted Powyższych tabeli nie można modyfikować - 5 -

Wyzwalacze typu,,po'' Można utworzyć kilka wyzwalaczy dla jednej akcji, np. po update'cie na tabeli osoba mogą się wykonywać dwa wyzwalacze Do ustalenia kolejności odpalania wyzwalaczy jest procedure sp_settriggerorder Składnia sp_settriggerorder[@triggername = ] 'triggername', [@order = ] 'value', [@stmttype = ] 'statement_type' - 6 -

Wyzwalacze typu,,po'' Uwagi do opcji procedury sp_settriggerorder Zmienna @order może przyjmować wartości First będzie odpalany jako pierwszy Last będzie odpalany jako ostatni None będzie odpalany w nieokreślonej kolejności (przypadkowej) Dla tabeli, dla akcji (insert, update, delete) można tylko raz ustawić, który wyzwalacz jest pierwszy, a który ostatni jeśli chcemy zmienić, to najpierw ten, który jest pierwszy lub ostatni trzeba ustawić na NONE - 7 -

Wyzwalacze typu,,po'' Uwagi do opcji procedury sp_settriggerorder Zmienna @stmttype może przyjmować wartości INSERT, UPDATE, DELETE Wartość zmiennej @stmttype musi być zgodna z akcją, po której wywoływany jest wyzwalacz - 8 -

Wyzwalacze typu,,po'' Wycofywanie wyzwalaczy Do przerwania wykonywania wyzwalacza służy polecenie ROLLBACK Istotne uwagi Wykonanie ROLLBACK przerywa wykonanie całego wsadu, w którym wyzwalacz został uruchomiony W szczególności instrukcja, która uruchomiła wyzwalacz zostanie wycofana - 9 -

Wyzwalacze typu,,po'' Kilka uwag zarówno instrukcje print jak select mogą być używane w treści wyzwalacza, jednak nie jest to zalecane powiedzmy, że mamy wyzwalacz dla insert w tabeli osoba, który również wykonuje insert do tej samej tabeli; to, czy zostanie wykonany nowy wyzwalacz zależy do ustawienia opcji recursive triggers jest to opcja serwera obowiązuje maksymalny stopień zagnieżdżenia, który wynosi 32-10 -

Wyzwalacze typu,,po'' Kilka uwag druga sytuacja jest taka, że jeden wyzwalacz modyfikuje dane w innej tabeli; to, czy zostanie uruchomiany następny wyzwalacz zależy od opcji nested triggers to jest opcja bazy danych tutaj również obowiązuje maksymalny stopień zagnieżdżenia, który wynosi 32 Obie opcje ustawiamy następująco sp_configure 'nested triggers', { 0 1 } ALTER DATABASE nazwa SET RECURSIVE_TRIGGERS ON - 11 -

Wyzwalacze typu,,po'' Przykład sqlserver-p06-01.sql - 12 -

Wyzwalacze typu,,zamiast'' Kilka uwag: są to wyzwalacze, które będą wykonane zamiast modyfikacji danych dla każdej akcji może istnieć tylko jeden wyzwalacz typu,,zamiast'' niezależnie od ustawień, wyzwalacze te nie są rekurencyjne nie można utworzyć wyzwalacza,,zamiast'' dla akcji delete, jeśli w tabeli jest klucz obcy z opcją on delete cascade akcji update, jeśli w tabeli jest klucz obcy z opcją on update cascade - 13 -

Wyzwalacze typu,,zamiast'' Modyfikacje widoków jeśli widok jest oparty na więcej niż jednej tabeli, nie można wykonywać na nim operacji modyfikujących jednak można utworzyć wyzwalacz typu,,zamiast'' i wtedy te operacje stają się dostępne szczególnie przydatne dla widoków opartych na złączeniach (JOIN) i sumach (UNION) - 14 -

Wyzwalacze typu,,zamiast'' Przykład sqlserver-p06-02.sql - 15 -

Zarządzanie wyzwalaczami Aby zobacz treść wyzwalacza można skorzystać z polecenia sp_helptext nazwa_wyzwalacza Podobnie jak w przypadku procedur, można w celu ukrycia szyfrować treść wyzwalacza służy do tego opcja WITH ENCRYPTION Zmienić definicję wyzwalacza można przez procedurę ALTER TRIGGER Dodatkowe informacje można też uzyskać poprzez procedurę sp_helptrigger - 16 -

Zależności referencyjne Zależności referencyjne można utrzymywać poprzez zdefiniowanie ograniczenia FOREIGN KEY poprzez zdefiniowanie odpowiednich wyzwalaczy wtedy nie definiujemy FOREIGN KEY definiujemy FOREIGN KEY, ale wyłączamy (zalecane) Przykład sqlserver-p05-03.sql - 17 -

Jeszcze raz rekurencja Przykład sqlserver-p06-04.sql - 18 -