SQL Server-temptabeller lagrer data midlertidig. Du kan utføre de samme operasjonene – som SELECT, INSERT, DELETE og UPDATE – på en midlertidig tabell som du ville gjort med en vanlig SQL-tabell.
Temp-tabeller lever i tempdb-databasen og er kun synlige under varigheten av tilkoblingen. Når du avslutter tilkoblingen, sletter SQL Server den midlertidige tabellen. Du kan også eksplisitt slette den når som helst.
Typer SQL Server Temp-tabeller
Det finnes to typer SQL Server-temptabeller: lokale og globale.
Lokal temperaturtabell
En lokal midlertidig tabell er bare synlig for tilkoblingen som opprettet den. Når den forbindelsen avsluttes, eller brukeren kobler fra SQL Server for eksempel slettes en lokal midlertidig tabell automatisk.
For å lage en lokal midlertidig tabell, bruk et enkelt hash-symbol (#) i begynnelsen av tabellnavnet med CREATE TABLE-setningen. Her er syntaksen.
SKAPEBORD#TempTable (
Kolonne 1 INT,
Kolonne 2 VARCHAR(50)
);
For eksempel oppretter følgende kode en midlertidig tabell kalt TempCustomer med et navn og e-postfelt.
SKAPEBORD#TempCustomer (
ID int IKKE NULL PRIMÆR NØKKEL
Fullt navn VARCHAR(50),
E-post VARCHAR(50)
);
Global temperaturtabell
En global temp-tabell er en midlertidig tabell som er synlig for alle tilkoblinger og brukere. SQL Server vil slippe den når alle tilkoblinger og brukere som refererer til tabellen er koblet fra.
For å lage en global midlertidig tabell, prefiks tabellnavnet med doble hashes (##) og bruk CREATE TABLE-setningen.
SKAPEBORD##Tempttabell (
Kolonne 1 INT,
Kolonne 2 VARCHAR(50)
);
Følgende kode oppretter en global temp-tabell kalt TempCustomer.
SKAPEBORD##Midlertidig kunde (
ID int IKKE NULL PRIMÆR NØKKEL
Fullt navn VARCHAR(50),
E-post VARCHAR(50)
);
Denne koden ligner på eksemplet for den lokale temp-tabellen, bare med to hash-symboler i stedet for ett. Du kan nå bruke standard SQL-kommandoer for å legge til eller manipulere dataene i den midlertidige tabellen.
Hvordan slippe et temperaturbord
SQL Server-forekomsten slipper automatisk en midlertidig tabell når alle brukere som refererer til den har koblet fra. Som en beste praksis bør du alltid eksplisitt droppe temp-tabellene dine for å frigjøre tempdb-minnet.
For å droppe en temp-tabell, bruk DROP TABLE IF EXISTS-setningen etterfulgt av navnet på temp-tabellen.
Slik slipper du #TempCustomer-tabellen:
MISTEBORDHVISFINNES#Midlertidig kunde
Bruk samme kode, men bytt tabellnavnet for å slippe en global midlertidig tabell.
MISTEBORDHVISFINNES##Midlertidig kunde
Typisk bruk av SQL Temp-tabeller
Temp-tabeller er nyttige når du trenger å lagre mellomresultater av komplekse spørringer som du må behandle videre. Når du for eksempel oppretter rapporter, må du kanskje opprette midlertidige tabeller for å lagre spørringsresultater fra flere databaser. Du kan deretter generere den endelige rapporten ved å kjøre en spørring mot de midlertidige tabellene.
Et annet scenario der midlertidige tabeller er nyttige er når du trenger søkeresultatene fra en tabell for å kjøre en annen spørring. Du kan lagre resultatene i en midlertidig tabell og deretter referere til den i den nye spørringen. I hovedsak bruker du temp-tabellen som en arbeids- eller buffertabell for å holde dataene du trenger for å utføre en spesifikk oppgave.
Bruke Temp-tabeller i SQL Server
Du kan bruke midlertidige SQL Server-tabeller til å lagre og behandle data midlertidig. Det finnes to typer temp-tabeller, lokale og globale. En lokal temp-tabell er synlig for tilkoblingen den er opprettet i, mens en global temp-tabell er synlig på tvers av alle tilkoblingene.
Temp-tabeller blir automatisk ødelagt når du kobler fra serverforekomsten. Men for å spare minne bør du alltid droppe dem etter bruk.