Administracja i programowanie pod Microsoft SQL Server 2000



Podobne dokumenty
Paweł Rajba

Administracja i programowanie pod Microsoft SQL Server 2000

W SQL Serwerze 2008 wprowadzono parametry tablicowe (Table Valued Parameters - TVP).

Administracja i programowanie pod Microsoft SQL Server 2000

Oracle PL/SQL. Paweł Rajba.

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

Paweł Rajba

Systemowe aspekty baz

Oracle PL/SQL. Paweł Rajba.

Systemowe aspekty baz danych

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

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

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

Programowanie obiektów

Administracja i programowanie pod Microsoft SQL Server 2000

Oracle PL/SQL. Paweł Rajba.

Wykład 8. SQL praca z tabelami 5

Hurtownia Świętego Mikołaja projekt bazy danych

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

BAZA DANYCH SIECI HOTELI

Oracle PL/SQL. Paweł Rajba.

Cele. Definiowanie wyzwalaczy

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

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Administracja i programowanie pod Microsoft SQL Server 2000

BAZY DANYCH Cz III. Transakcje, Triggery

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

Bazy Danych i Usługi Sieciowe

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

Język PL/SQL Procedury i funkcje składowane

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

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

Składowane procedury i funkcje

CREATE USER

Bazy danych i usługi sieciowe

Administracja i programowanie pod Microsoft SQL Server 2000

Oracle PL/SQL. Paweł Rajba.

SQL 4 Structured Query Lenguage

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

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 6. Klucze obce. P. F. Góra

Elementy. języka SQL

Wyzwalacze. Anna Fiedorowicz Bazy danych 2

Paweł Rajba

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

Microsoft SQL Server Podstawy T-SQL

Oracle PL/SQL. Paweł Rajba.

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

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

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

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

SQL :: Data Definition Language

Ćwiczenia 2 IBM DB2 Data Studio

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Bazy danych 7. SQL podstawy

Język SQL, zajęcia nr 1

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

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

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

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

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

Struktura bazy danych

na MS SQLServer 2005 i 2008

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

41. Zmienne lokalne muszą mieć nazwę, którą poprzedza (maksymalnie 128 znaków) oraz typ (każdy z wyjątkiem: text, ntext oraz image)

Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki.

Administracja i programowanie pod Microsoft SQL Server 2000

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

Bazy danych - Materiały do laboratoriów VIII

Administracja i programowanie pod Microsoft SQL Server 2000

Tuning SQL Server dla serwerów WWW

15. Funkcje i procedury składowane PL/SQL

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

Kowalski Marcin Wrocław, dn Jaśkiewicz Kamil Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami

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

Wykład 5. SQL praca z tabelami 2

PODSTAWY BAZ DANYCH 13. PL/SQL

Oracle PL/SQL. Paweł Rajba.

Plan wykładu BAZY DANYCH II WYKŁAD 5. Kolekcje. Tablice asocjacyjne Kolekcje Tablice asocjacyjne VARRAY Tablice zagnieżdżone

Bazy danych 10. SQL Widoki

Administracja i programowanie pod Microsoft SQL Server 2000

Pakiety podprogramów Dynamiczny SQL

Bloki anonimowe w PL/SQL

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

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

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

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

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

Procedury i funkcje składowane

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

Plan wykładu BAZY DANYCH II WYKŁAD 2. Bloki. Struktura bloku

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

Zarządzanie kontami użytkowników w i uprawnieniami

Systemy GIS Tworzenie zapytań w bazach danych

Aspekty aktywne baz danych

Oracle PL/SQL. Paweł Rajba.

Bazy danych Język SQL część 2 Wykład dla studentów matem

Internetowe bazy danych

Transkrypt:

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

Zawartość modułu 4 Wsady Procedury składowane Procedury składowane tymczasowe, startowe Zmienne tabelowe Funkcje użytkownika systemowe Pobieranie informacji o kodzie - 1 -

Wsady Instrukcje we wsadzie traktowane są jako jedna całość, jeden,,program'' Stosowanie wsadów zwiększa wydajność np. wykonanie 200 insertów w jednym wsadzie może być nawet 10x szybsze, niż wykonanie tych insertów osobno Przy tworzeniu wsadów są pewne ograniczenia: wyrażenia create default, create procedure, create rule, create trigger, create view muszą być we wsadzie samodzielne - 2 -

Wsady Ograniczenia c.d. w jednym wsadzie nie można dodać lub zmienić kolumny w tabeli (ALTER TABLE), a potem się do niek odwoływać jawnie trzeba podawać wywołanie za pomocą słowa EXEC (poza pierwszym) Przykład sqlserver-p04-01a.sql sqlserver-p04-01b.sql - 3 -

Wsady Błędy we wsadach Mamy dwa rodzaje błędów: Błędy kompilacji (compile) Błędy wykonania (run-time) Przykłady sqlserver-p04-02.sql - 4 -

Wsady Znaczenie polecenia GO Interpretowany przez klientów (np. Query Analyzera) znacznik końca wsadu SQL Server nigdy nie widzi GO i nawet nie wie co to - 5 -

Wsady Znaczenie polecenia GO Quiz: co zrobi poniższy kod select count(*) from authors /* go select count(*) from titles go select count(*) from sales go */ select count(*) from jobs go - 6 -

Wsady Znaczenie polecenia GO W takich sytuacjach należy używać komentarzy jednowierszowych: -- - 7 -

Procedury składowane Główne różnice między wsadem a procedurą: wsad jest przesyłany od klienta do serwera i potem na serwerze wykonywany procedura jest tylko na serwerze i tam jest bezpośrednio wykonywana do procedury możemy przekazywać parametry, do wsadu oczywiście nie możemy ich przekazywać Do utworzenia procedury służy polecenie CREATE PROCEDURE - 8 -

Procedury składowane CREATE PROCEDURE przykład składni: create procedure nazwa[;liczba] [@parametr typ=default,... [output]] as begin instrukcje end Parametr liczba pozwala utworzyć grupę procedur, którą można potem usunąć jednym poleceniem Słowo output oznacza przekazywanie parametru przez zmienną - 9 -

Procedury składowane Przykład sqlserver-p04-03.sql - 10 -

Procedury składowane Zagnieżdżanie procedur, rekurencja maksymalny poziom zagnieżdżenia do 32 zmienna @nestlevel poziom zagnieżdżenia Wywołania sekwencyjne ilość praktycznie bez ograniczeń Przykład sqlserver-p04-04.sql - 11 -

Procedury tymczasowe Są tworzone w bazie tempdb Są trzy rodzaje takich procedur prywatne globalne - 12 -

Procedury tymczasowe Prywatne procedury tymczasowe Nazwa takiej procedury zaczyna się od znaku # Procedura jest dostępna tylko w ramach połączenia, w którym została utworzona (nie ma konfliktu nazw) Po zakończeniu połączenia procedura jest usuwana - 13 -

Procedury tymczasowe Globalne procedury tymczasowe Nazwa takiej procedury zaczyna się od znaku ## Tworzona jest jedna kopia takiej procedury i jest ona dostępna dla wszystkich Niezależnie od uprawnień, wszyscy mogą ją wykonywać - 14 -

Startowe procedury Są to procedury uruchamiane przy starcie serwera i działają w tle Uruchamianych może być kilka procedur, ponieważ ich uruchamianie jest asynchroniczne Startowa procedura musi być w bazie master Do ustawienia procedury jako startowej służy polecenie sp_procoption nazwa, startup, true lub też można to zrobić w EM, przy przeglądaniu właściwości procedury (jest odpowiedni checkbox) - 15 -

Startowe procedury Poprzez opcje uruchomienia serwera -f można wyłączyć uruchamianie takich procedur EM Właściwości serwera Startup Parameters... Przykład sqlserver-p04-05.sql - 16 -

Zmienne tabelowe Zmienne tabelowe Są to zmienne, które reprezentują tabele Typu table nie można przekazywać jako parametrów procedur i funkcji wykorzystać jako typu kolumny w tabeli Kilka uwag dotyczących typu table Przy definicji listy kolumn tabeli można wykorzystać: [NOT] NULL, PRIMARY KEY, UNIQUE, CHECK, DEFAULT Zmienne tabelowe nie mogą brać udziału w powiązaniach klucza obcego (w obie strony) - 17 -

Zmienne tabelowe Kilka uwag dotyczących typu table c.d. Na zmiennych można wykonywać operacje SELECT, INSERT, UPDATE, DELETE przy czym nie można użyć konstrukcji SELECT.. INTO zmienna.. oraz konstrukcji INSERT INTO.. EXEC procedura Dla zmiennych nie można utworzyć indeksu przy użyciu CREATE INDEX Przykład sqlserver-p04-06.sql - 18 -

Funkcje użytkownika Funkcje skalarne Takie funkcje, które zwracają wartość skalarną Mogą przyjmować max 1024 parametry dowolnych typów poza rowversion, timestamp, cursor, table Muszą mieć oczywiście instrukcję RETURN Do utworzenia takiej funkcji używamy polecenia CREATE FUNCTION - 19 -

Funkcje użytkownika Funkcje skalarne Składnia CREATE FUNCTION CREATE FUNCTION [wlasciciel.]nazwa ([{ @parametr@ [AS] typ [=default default]} [,...[...n]]) RETURNS typ_zwracanej_wartosci AS BEGIN instrukcje RETURN wyrazenie_skalarne END Wywołanie musi być z podaniem właściciela np. dbo.przeterminowane('owoce') - 20 -

Funkcje użytkownika Funkcje tabelowe Zwracają jako wynik zestaw wierszy Możne je traktować jak widoki z parametrem Są dwa rodzaje: bezpośrednie i wielopoleceniowe Do utworzenia takich funkcji używamy polecenia CREATE FUNCTION - 21 -

Funkcje użytkownika Funkcje tabelowe bezpośrednie Składnia CREATE FUNCTION [wlasciciel.]nazwa ([{ @parametr@ [AS] typ [=default default]} [,...[...n]]) RETURNS TABLE [AS] RETURN [ ( ] wyrazenie_select [ ) ] Jak wynika ze składni funkcja zawiera tylko jedną instrukcje i jest to RETURN Przy wywoływaniu nie trzeba podawać właściciela - 22 -

Funkcje użytkownika Funkcje tabelowe wielopoleceniowe Składnia CREATE FUNCTION [wlasciciel.]nazwa ([{ @parametr@ [AS] typ [=default default]} [,...[...n]]) RETURNS @zmienna TABLE <definicja_tabeli> [AS] BEGIN instrukcje RETURN END Instrukcje powinny wstawić wiersze do @zmienna i to one będą stanowić zwracany wynik - 23 -

Funkcje użytkownika Uwagi W funkcjach można wykonywać tylko określony zestaw instrukcji (lista w dokumentacji) W funkcjach nie można wywoływać funkcji,,niedeterministycznych'' (lista tych funkcji w dokumentacji) Jeśli chcemy skorzystać z wartości parametru domyślnego należy w jego miejsce podać default - 24 -

Funkcje użytkownika Przykład sqlserver-p04-07.sql - 25 -

Funkcje systemowe Funkcje systemowe tzn. dostępne z każdej bazy danych Funkcje tabelowe Odwołanie do tabelowej funkcji systemowej odbywa się poprzez dodanie przed nazwą znaków :: Przykład select * from ::fn_helpcollations() Inne funkcje np. fn_serverid('nazwa') - 26 -

Pobieranie informacji o kodzie Większość informacji jest przechowywana w tabeli master..syscomments Niektóre kolumny tabeli syscomments colid określa numer wiersza danej procedury jest typu smallint (czyli może być do 32767 wierszy) encrypted jeśli zaszyfrowane, wartość 1, jeśli nie, wartość 0 compressed jeśli skompresowane, wartość 1, jeśli nie, wartość 0 text tekst wiersza procedury - 27 -

Pobieranie informacji o kodzie Za pomocą procedury sp_helptext możemy zobaczyć kod procedur czy funkcji Jeśli przy tworzeniu kodu funkcji (procedury) użyjemy opcji ENCRYPTION, takie możliwości już nie będzie po zaszyfrowaniu nie ma możliwości odszyfrowania Informacje o kodzie można także znaleźć w INFORMATION_SCHEMA.X X=ROUTINES,PARAMETERS,ROUTINE_COLUMNS Przykład sqlserver-p04-08.sql - 28 -