Transact-SQL - Transact-SQL
![]() | tento článek potřebuje další citace pro ověření.Srpna 2017) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Transact-SQL (T-SQL) je Microsoft a Sybase proprietární rozšíření SQL (Structured Query Language) používaný k interakci s relační databáze. T-SQL rozšiřuje zahrnutý standard SQL procedurální programování, lokální proměnné, různé podpůrné funkce pro zpracování řetězců, zpracování dat, matematiku atd. a změny v VYMAZAT a AKTUALIZACE prohlášení.
Transact-SQL je ústřední pro používání Microsoft SQL Server. Všechny aplikace, které komunikují s instancí serveru SQL, tak zasílají příkazy Transact-SQL na server, bez ohledu na uživatelské rozhraní aplikace.
Uložené procedury na serveru SQL Server jsou spustitelné rutiny na straně serveru. Výhodou uložených procedur je schopnost předávat parametry.
Proměnné
Transact-SQL poskytuje následující příkazy k deklaraci a nastavení místních proměnných: PROHLÁSIT
, SOUBOR
a VYBRAT
.
PROHLÁSIT@ var1NVARCHAR(30);SOUBOR@ var1=‚Some Name ';VYBRAT@ var1=názevZOdbyt.ObchodKDEZákaznické identifikační číslo=100;
Řízení toku
Klíčová slova pro řízení toku v Transact-SQL zahrnují ZAČÍT
a KONEC
, PŘESTÁVKA
, POKRAČOVAT
, JÍT DO
, LI
a JINÝ
, VRÁTIT SE
, ČEKAT NA
, a ZATÍMCO
.
LI
a JINÝ
povolit podmíněné provedení. Toto dávkové prohlášení vytiskne „Je víkend“, pokud je aktuální datum víkendový den, nebo „Je den v týdnu“, pokud je aktuální datum den v týdnu. (Poznámka: Tento kód předpokládá, že neděle je nakonfigurována jako první den v týdnu v @@ DATEFIRST
nastavení.)
LIDATEPART(dw,GETDATE())=7NEBODATEPART(dw,GETDATE())=1TISK"Je víkend.";JINÝTISK"Je všední den.";
ZAČÍT
a KONEC
označit a blok výpisů. Pokud má být podmíněným ve výše uvedeném příkladu ovládáno více než jeden příkaz, můžeme použít ZAČÍT
a KONEC
takhle:
LIDATEPART(dw,GETDATE())=7NEBODATEPART(dw,GETDATE())=1ZAČÍTTISK"Je víkend.";TISK"O víkendu si odpočiňte!";KONEC;JINÝZAČÍTTISK"Je všední den.";TISK"Do práce ve všední den!";KONEC;
ČEKAT NA
počká na určitou dobu nebo do určité denní doby. Příkaz lze použít pro zpoždění nebo k zablokování provádění do nastaveného času.
VRÁTIT SE
slouží k okamžitému návratu z a uložené procedury nebo funkce.
PŘESTÁVKA
končí uzavření ZATÍMCO
smyčka, zatímco POKRAČOVAT
způsobí provedení další iterace smyčky. Příklad a ZATÍMCO
smyčka je uvedena níže.
PROHLÁSIT@iINT;SOUBOR@i=0;ZATÍMCO@i<5ZAČÍTTISK'Ahoj světe.';SOUBOR@i=@i+1;KONEC;
Změny příkazů DELETE a UPDATE
V Transact-SQL, jak VYMAZAT
a AKTUALIZACE
příkazy jsou vylepšeny, aby bylo možné v operaci použít data z jiné tabulky, aniž byste potřebovali poddotaz:
VYMAZAT
přijímá spojené tabulky vZ
klauzule, podobně jakoVYBRAT
. Když je toto provedeno, je mezi ně umístěn název nebo alias, ze kterého má být tabulka ve spojení odstraněnaVYMAZAT
aZ
.AKTUALIZACE
umožňujeZ
doplnit doložku. Tabulka, která má být aktualizována, může být připojena do souboruZ
klauzule a odkazováno aliasem nebo odkazováno pouze na začátku příkazu podle standardního SQL.
Tento příklad odstraní všechny uživatelů
kteří byli označeni příznakem „Nečinný“.
VYMAZATuZuživatelůTAK JAKOuVNITŘNÍPŘIPOJIT SEuser_flagsTAK JAKOFNAu.id=F.idKDEF.název='líný';
HROMADNÁ VLOŽKA
HROMADNĚ
je příkaz Transact-SQL, který implementuje proces hromadného načítání dat, vkládání více řádků do tabulky, čtení dat z externího sekvenčního souboru. Použití HROMADNÁ VLOŽKA
vede k lepšímu výkonu než procesy, které vydávají jednotlivce VLOŽIT
příkazy pro každý řádek, který má být přidán. Další podrobnosti jsou k dispozici v MSDN.
ZKUS CHYTIT
Počínaje SQL Server 2005,[1] Microsoft představil další ZKUS CHYTIT
logika pro podporu chování typu výjimky. Toto chování umožňuje vývojářům zjednodušit jejich kód a vynechat @@CHYBA
kontrola po každém provedení příkazu SQL.
- zahájit transakciZAČÍTTRAN;ZAČÍTSNAŽ SE- provést každý výpisVLOŽITDOMYTABLE(NÁZEV)HODNOTY('ABC');VLOŽITDOMYTABLE(NÁZEV)HODNOTY('123');- provést transakciSPÁCHATTRAN;KONECSNAŽ SEZAČÍTCHYTIT- vrátit transakci zpět kvůli chyběROLLBACKTRAN;KONECCHYTIT;
Viz také
- Adaptive Server Enterprise (Sybase)
- PL / SQL (Oracle)
- PL / pgSQL (PostgreSQL)
- SQL / PSM (ISO standard)
- Sys. Objekty
Reference
- ^ „Vylepšení T-SQL na serveru SQL Server 2012“, Jonathan Allen 19. března 2012, infoq.com