Læsere som dig hjælper med at støtte MUO. Når du foretager et køb ved hjælp af links på vores websted, kan vi optjene en affiliate-kommission. Læs mere.

SQL Server temp-tabeller gemmer data midlertidigt. Du kan udføre de samme handlinger – som SELECT, INSERT, DELETE og UPDATE – på en midlertidig tabel, som du ville gøre med en almindelig SQL-tabel.

Temp-tabeller lever i tempdb-databasen og er kun synlige under forbindelsens varighed. Når du afslutter forbindelsen, sletter SQL Server den midlertidige tabel. Du kan også udtrykkeligt slette den til enhver tid.

Typer af SQL Server Temp-tabeller

Der er to typer SQL Server-temp-tabeller: lokale og globale.

Lokal temperatur tabel

En lokal midlertidig tabel er kun synlig for den forbindelse, der har oprettet den. Når forbindelsen slutter, eller brugeren afbryder forbindelsen fra SQL Server for eksempel slettes en lokal midlertidig tabel automatisk.

For at oprette en lokal midlertidig tabel skal du bruge et enkelt hash-symbol (#) i begyndelsen af ​​tabelnavnet med CREATE TABLE-sætningen. Her er syntaksen.

instagram viewer
SKABBORD#Temptable (
Kolonne 1 INT,
Kolonne 2 VARCHAR(50)
);

For eksempel opretter følgende kode en midlertidig tabel kaldet TempCustomer med et navn og e-mail-felt.

SKABBORD#TempCustomer (
ID int IKKE NULL PRIMÆR NØGLE
Fuldt navn VARCHAR(50),
E-mail VARCHAR(50)
);

Global temperaturtabel

En global midlertidig tabel er en midlertidig tabel, der er synlig for alle forbindelser og brugere. SQL Server vil droppe det, når alle forbindelser og brugere, der refererer til tabellen, er afbrudt.

For at oprette en global temp-tabel skal du præfikse tabelnavnet med dobbelte hashes (##) og bruge CREATE TABLE-sætningen.

SKABBORD##Temptable (
Kolonne 1 INT,
Kolonne 2 VARCHAR(50)
);

Følgende kode opretter en global temp-tabel ved navn TempCustomer.

SKABBORD##Midlertidig kunde (
ID int IKKE NULL PRIMÆR NØGLE
Fuldt navn VARCHAR(50),
E-mail VARCHAR(50)
);

Denne kode ligner eksemplet for den lokale temp-tabel, bare med to hash-symboler i stedet for ét. Du kan nu bruge standard SQL-kommandoer for at tilføje eller manipulere dataene i den midlertidige tabel.

Sådan dropper du en Temp-tabel

SQL Server-instansen sletter automatisk en midlertidig tabel, når alle brugere, der henviser til den, har afbrudt forbindelsen. Som en bedste praksis bør du altid eksplicit droppe dine midlertidige tabeller for at frigøre tempdb-hukommelsen.

For at droppe en temp-tabel skal du bruge DROP TABLE IF EXISTS-sætningen efterfulgt af navnet på temp-tabellen.

Sådan slipper du #TempCustomer-tabellen:

DRÅBEBORDHVISEKSISTERER#Midlertidig kunde

Brug den samme kode, men skift tabelnavnet for at slippe en global midlertidig tabel.

DRÅBEBORDHVISEKSISTERER##Midlertidig kunde

Typiske anvendelser af SQL Temp-tabeller

Temp-tabeller er nyttige, når du skal gemme mellemresultater af komplekse forespørgsler, som du skal behandle yderligere. For eksempel, når du opretter rapporter, skal du muligvis oprette midlertidige tabeller for at gemme forespørgselsresultater fra flere databaser. Du kan derefter generere den endelige rapport ved at køre en forespørgsel mod de midlertidige tabeller.

Et andet scenarie, hvor midlertidige tabeller er nyttige, er, når du har brug for forespørgselsresultaterne fra én tabel for at køre en anden forespørgsel. Du kan gemme resultaterne i en midlertidig tabel og derefter referere til den i din nye forespørgsel. I det væsentlige bruger du temp-tabellen som en arbejds- eller buffertabel til at opbevare de data, du har brug for til at udføre en specifik opgave.

Brug af Temp-tabeller i SQL Server

Du kan bruge midlertidige SQL Server-tabeller til at gemme og behandle data midlertidigt. Der er to typer vikarborde, lokale og globale. En lokal midlertidig tabel er synlig for den forbindelse, den er oprettet i, mens en global midlertidig tabel er synlig på tværs af alle forbindelserne.

Temp-tabeller bliver automatisk ødelagt, når du afbryder forbindelsen til serverforekomsten. For at spare på hukommelsen bør du dog altid droppe dem efter brug.