Tādi lasītāji kā jūs palīdz atbalstīt MUO. Veicot pirkumu, izmantojot saites mūsu vietnē, mēs varam nopelnīt filiāles komisiju. Lasīt vairāk.

SQL Server pagaidu tabulās dati tiek glabāti īslaicīgi. Pagaidu tabulā varat veikt tās pašas darbības, piemēram, SELECT, INSERT, DELETE un UPDATE, kā parastā SQL tabulā.

Temp tabulas atrodas tempdb datu bāzē un ir redzamas tikai savienojuma laikā. Kad pārtraucat savienojumu, SQL Server izdzēš pagaidu tabulu. Varat arī to jebkurā laikā skaidri izdzēst.

SQL Server tempa tabulu veidi

Ir divu veidu SQL Server temp tabulas: lokālās un globālās.

Vietējā tempu tabula

Vietējā temp tabula ir redzama tikai savienojumam, kas to izveidoja. Kad savienojums beidzas vai lietotājs atvienojas no SQL serveris Piemēram, vietējā temp tabula tiek automātiski atmesta.

Lai izveidotu lokālu pagaidu tabulu, izmantojiet vienu jaucējzīmi (#) tabulas nosaukuma sākumā ar priekšrakstu CREATE TABLE. Šeit ir sintakse.

IZVEIDOTTABULA#TempTable (
1. sleja INT,
2. kolonna VARCHAR(50)
);

Piemēram, šāds kods izveido pagaidu tabulu ar nosaukumu TempCustomer ar nosaukumu un e-pasta lauku.

IZVEIDOTTABULA#TempCustomer (
ID int NOT NULL PRIMARY KEY
Pilns vārds VARCHAR(50),
E-pasts VARCHAR(50)
);

Globālā tempu tabula

Globālā pagaidu tabula ir pagaidu tabula, kas redzama visiem savienojumiem un lietotājiem. SQL Server to atmetīs, kad visi savienojumi un lietotāji, kas atsaucas uz tabulu, ir atvienoti.

Lai izveidotu globālu pagaidu tabulu, tabulas nosaukuma priekšā pievienojiet dubultās jaucējzīmes (##) un izmantojiet priekšrakstu CREATE TABLE.

IZVEIDOTTABULA##TempTable (
1. sleja INT,
2. kolonna VARCHAR(50)
);

Šis kods izveido globālu temp tabulu ar nosaukumu TempCustomer.

IZVEIDOTTABULA##TempCustomer (
ID int NOT NULL PRIMARY KEY
Pilns vārds VARCHAR(50),
E-pasts VARCHAR(50)
);

Šis kods ir līdzīgs vietējās temp tabulas piemēram, tikai ar diviem jaucējsimboliem viena vietā. Tagad varat izmantot standarta SQL komandas lai pievienotu vai manipulētu ar datiem temp tabulā.

Kā nomest tempu tabulu

SQL Server instance automātiski nolaiž pagaidu tabulu, kad visi lietotāji, kas atsaucas uz to, ir atvienojušies. Lai atbrīvotu tempdb atmiņu, vienmēr ir skaidri jāatmet temp tabulas.

Lai atmestu pagaidu tabulu, izmantojiet priekšrakstu DROP TABLE IF EXISTS, kam seko pagaidu tabulas nosaukums.

Lūk, kā nomest #TempCustomer tabulu:

NOLIETOTTABULAJAPASTĀV#TempCustomer

Izmantojiet to pašu kodu, bet nomainiet tabulas nosaukumu, lai nomestu globālo pagaidu tabulu.

NOLIETOTTABULAJAPASTĀV##TempCustomer

Tipiski SQL temp tabulu lietojumi

Pagaidu tabulas ir noderīgas, ja ir jāsaglabā sarežģītu vaicājumu starprezultāti, kas jāapstrādā tālāk. Piemēram, veidojot atskaites, iespējams, būs jāizveido pagaidu tabulas, lai saglabātu vaicājumu rezultātus no vairākām datu bāzēm. Pēc tam varat ģenerēt gala pārskatu, izpildot vaicājumu saistībā ar pagaidu tabulām.

Vēl viens scenārijs, kurā pagaidu tabulas ir noderīgas, ir tad, ja jums ir nepieciešami vaicājuma rezultāti no vienas tabulas, lai palaistu citu vaicājumu. Varat saglabāt rezultātus pagaidu tabulā un pēc tam atsaukties uz to jaunajā vaicājumā. Būtībā pagaidu tabulu izmantojat kā darba vai bufera tabulu, lai glabātu datus, kas nepieciešami konkrēta uzdevuma veikšanai.

Temp tabulu izmantošana SQL serverī

Varat izmantot SQL Server pagaidu tabulas, lai īslaicīgi uzglabātu un apstrādātu datus. Ir divu veidu temp tabulas, vietējās un globālās. Vietējā pagaidu tabula ir redzama savienojumam, kurā tā ir izveidota, savukārt globālā pagaidu tabula ir redzama visos savienojumos.

Pagaidu tabulas tiek automātiski iznīcinātas, kad atvienojaties no servera instances. Tomēr, lai taupītu atmiņu, pēc lietošanas tās vienmēr vajadzētu nomest.