close

Transact-SQL

Ugrás a navigációhoz Ugrás a kereséshez
Transact-SQL
programozási nyelv
SzerzőMicrosoft , Sybase
Paradigmákeljárási programozás

A számítástechnikában a Transact-SQL (néha T-SQL- nek is nevezik) a Microsoft és a Sybase által kifejlesztett SQL nyelv szabadalmaztatott kiterjesztése . A Microsoft verzióját a Microsoft SQL Serverrel szállítják , míg a Sybase ezt a nyelvet használja az Adaptive Server Enterprise -ban, amely a Sybase SQL Server utódja .

Növelje az SQL teljesítményét a következők hozzáadásával:

Folyamatszabályozás és nyelvi struktúra

Azok a kulcsszavak , amelyekkel a Transact - SQL megvalósítja a folyamatvezérlést , a következők : BEGINe END,,,, és BREAK,,, és .CONTINUEGOTOIFELSERETURNWAITFORWHILE

IFés lehetővé teszi az utasításblokkok feltételesELSE végrehajtását . Az ezt követő köteg „munkaszüneti napot” nyomtat, ha az aktuális dátum szombat vagy vasárnap, vagy „hétköznap” egyébként.

IF DATEPART (dw, GETDATE ()) = 7 VAGY DATEPART (dw, GETDATE ()) = 1
   NYOMTATÁS "Ez egy munkaszüneti nap."
MÁS
   NYOMTATÁS "Hétköznap van."

BEGINés ENDhatároljon el egy utasításblokkot. Ha több utasítást kell vezérelni az előző példában bemutatott feltételekkel, akkor a következőképpen használhatjuk a BEGIN és END billentyűket:

IF DATEPART (dw, GETDATE ()) = 7 VAGY DATEPART (dw, GETDATE ()) = 1
KEZDŐDIK
   NYOMTATÁS "Ez egy munkaszüneti nap."
   NYOMTATÁS 'Vegyünk egy nyaralást!'
VÉGE
MÁS
KEZDŐDIK
   NYOMTATÁS "Hétköznap van."
   NYOMTATÁS "Menj dolgozni!"
VÉGE

WAITFORvárjon egy bizonyos ideig, vagy a nap egy bizonyos szakaszáig. Ez az utasítás használható késleltetett műveletek végrehajtására vagy egy művelet végrehajtásának blokkolására egy bizonyos idő elérése előtt.

RETURNarra szolgál, hogy azonnal kilépjen egy tárolt eljárásból vagy egy bizonyos funkcióból.

BREAKegy a-val kezdődő ciklust okoz, hogy kilépjen WHILE, miközben CONTINUEvégrehajtja a következő ciklust a ciklusban. Az alábbiakban egy hurok példája látható WHILE.

Helyi változók

A helyi változók csak az azokat használó szkript számára érhetők el. A Transact-SQL nem támogatja a felhasználó által definiált globális változókat.

DECLAREdeklarál egy változót, nevet és típust ad neki. Érték megadásához a SET-et használjuk, majd a változót a nevének hivatkozásként használva lehet használni.

Ez a szkript egy változót egész számként deklarál, inicializálja, majd egy WHILEto ciklust használ.

NYILATKOZAT @Counter INT
SET @Counter = 10
WHILE @Counter> 0
KEZDŐDIK
   PRINT 'Ciklusok száma:' + KONVERTÁLÁS (VARCHAR (10), @Counter)
   SET @Counter = @Counter - 1
VÉGE

A cikluson belül a változó aktuális értékét tartalmazó üzenet kerül kinyomtatásra, majd a számláló eggyel csökken.

Egy változó közvetlenül is inicializálható egy utasítás eredményeként:

NYILATKOZAT @ContaArticoli INT
SELECT @ContaArticoli = COUNT (*) A cikkekből
INSERT INTO SizeLog (VerificationTime, ArticleCount) ÉRTÉKEK (GETDATE (), @ContaArticoli)

Itt például a „Cikkek” táblában található sorok száma kerül beolvasásra, majd a „SizeLog” táblához hozzáadódik egy sor, amely tartalmazza a sorok számát és az aktuális időt.

Bővített DELETE és UPDATE utasítások

A Transact-SQL-ben a DELETE és UPDATE utasításokhoz hozzáadható egy opció, FROMamely lehetővé teszi a hivatkozást más táblákhoz egy JOIN. A következő példában a „Felhasználók” tábla összes, „tétlen” jelzővel megjelölt rekordja törlődik.

Felhasználók törlése
  FROM Felhasználók, mint u
  JOIN Users_flags mint f
    ON u.id = f.id
 WHERE f.name = 'tétlen'

Kritikák

A kritikusok szerint a Transact-SQL új funkciói nem csak a szabványos SQL nyelvvel való kompatibilitást törik meg, hanem ellentmondanak annak a feltételezésnek is, hogy az SQL-t csak deklaratív nyelvnek tervezték (ahogy valójában volt, legalábbis a szabványos verzióig SQL 1999 ). Más szavakkal, a Transact-SQL további funkcióit egy valódi új, imperatív nyelv bevezetésével valósították volna meg , zavaró és nem túl lineáris megoldással, amikor a kritikusok szerint ugyanazokat a funkciókat lehetett volna megvalósítani. másik programozási réteg használatával vagy ugyanazzal az SQL-lel.

Kapcsolódó elemek

Külső linkek