Tokie skaitytojai kaip jūs padeda palaikyti MUO. Kai perkate naudodami nuorodas mūsų svetainėje, galime uždirbti filialų komisinius. Skaityti daugiau.

SQL serverio laikinosiose lentelėse duomenys saugomi laikinai. Laikinojoje lentelėje galite atlikti tas pačias operacijas, pvz., SELECT, INSERT, DELETE ir UPDATE, kaip ir įprastoje SQL lentelėje.

Temp lentelės yra tempdb duomenų bazėje ir yra matomos tik ryšio metu. Kai nutraukiate ryšį, SQL serveris ištrina laikinąją lentelę. Taip pat galite bet kada jį aiškiai ištrinti.

SQL serverio temp lentelių tipai

Yra dviejų tipų SQL Server temp lentelės: vietinės ir pasaulinės.

Vietinė temp lentelė

Vietinę laikinąją lentelę mato tik ją sukūręs ryšys. Kai šis ryšys nutrūksta arba vartotojas atsijungia nuo SQL serveris Pavyzdžiui, vietinė temp lentelė automatiškai pašalinama.

Norėdami sukurti vietinę laikinąją lentelę, lentelės pavadinimo pradžioje naudokite vieną maišos simbolį (#) su sakiniu CREATE TABLE. Čia yra sintaksė.

KURTILENTELĖ#TempTable (
1 stulpelis INT,
2 stulpelis VARCHAR(50)
);
instagram viewer

Pavyzdžiui, šis kodas sukuria laikiną lentelę TempCustomer su vardu ir el. pašto laukeliu.

KURTILENTELĖ#TempCustomer (
ID int NOT NULL PIRMINIS RAKTAS
Visas vardas VARCHAR(50),
El. paštas VARCHAR(50)
);

Pasaulinė tempų lentelė

Visuotinė laikinoji lentelė yra laikina lentelė, matoma visiems ryšiams ir vartotojams. SQL serveris atmes jį, kai visi ryšiai ir vartotojai, kurie nurodo lentelę, bus atjungti.

Norėdami sukurti visuotinę laikinąją lentelę, prieš lentelės pavadinimą įrašykite dvigubą maišą (##) ir naudokite teiginį CREATE TABLE.

KURTILENTELĖ##TempTable (
1 stulpelis INT,
2 stulpelis VARCHAR(50)
);

Šis kodas sukuria pasaulinę temp lentelę pavadinimu TempCustomer.

KURTILENTELĖ##TempCustomer (
ID int NOT NULL PIRMINIS RAKTAS
Visas vardas VARCHAR(50),
El. paštas VARCHAR(50)
);

Šis kodas panašus į vietinės temp lentelės pavyzdį, tik su dviem maišos simboliais, o ne vienu. Dabar galite naudoti standartinės SQL komandos Norėdami pridėti arba manipuliuoti laikinosios lentelės duomenimis.

Kaip numesti laikinąją lentelę

SQL serverio egzempliorius automatiškai atmeta laikinąją lentelę, kai visi ją nurodantys vartotojai atsijungia. Kaip geriausia praktika, visada turėtumėte aiškiai atsisakyti temp lentelių, kad atlaisvintumėte tempdb atmintį.

Norėdami atmesti laikinąją lentelę, naudokite teiginį DROP TABLE IF EXISTS ir laikinosios lentelės pavadinimą.

Štai kaip panaikinti #TempCustomer lentelę:

NULEISTILENTELĖJEIYRA#TempCustomer

Naudokite tą patį kodą, bet pakeiskite lentelės pavadinimą, kad atsisakytumėte visuotinės laikinosios lentelės.

NULEISTILENTELĖJEIYRA##TempCustomer

Įprasti SQL temp lentelių naudojimo būdai

Laikinosios lentelės yra naudingos, kai reikia saugoti tarpinius sudėtingų užklausų rezultatus, kuriuos reikia toliau apdoroti. Pavyzdžiui, kuriant ataskaitas gali tekti sukurti laikinas lenteles, kad būtų saugomi kelių duomenų bazių užklausų rezultatai. Tada galite sugeneruoti galutinę ataskaitą vykdydami užklausą pagal laikinąsias lenteles.

Kitas scenarijus, kai naudingos laikinosios lentelės, yra tada, kai jums reikia užklausos rezultatų iš vienos lentelės, kad galėtumėte vykdyti kitą užklausą. Galite saugoti rezultatus laikinojoje lentelėje ir tada nurodyti juos naujoje užklausoje. Iš esmės laikinąją lentelę naudojate kaip darbo arba buferio lentelę, kurioje saugomi duomenys, kurių reikia konkrečiai užduočiai atlikti.

Temp lentelių naudojimas SQL serveryje

Duomenims laikinai saugoti ir apdoroti galite naudoti SQL serverio laikinąsias lenteles. Yra dviejų tipų laikinosios lentelės: vietinės ir pasaulinės. Vietinė laikinoji lentelė matoma ryšiui, kuriame ji sukurta, o visuotinė laikinoji lentelė matoma visuose ryšiuose.

Laikinosios lentelės automatiškai sunaikinamos, kai atsijungiate nuo serverio egzemplioriaus. Tačiau norėdami sutaupyti atminties, visada turėtumėte juos išmesti po naudojimo.