SQL Server INSERT I TEMP -tabellen

SQL Server INSERT I TEMP -tabellen

Midlertidige tabeller, eller temp -tabeller, se tabeller opprettet av en SQL Server -bruker for det eneste formål å lagre data midlertidig. Temp -tabeller er nyttige for å jobbe med undergrupper av data som vil kreve hauger av spesifiserte spørsmål for å filtrere.

Denne guiden vil diskutere hvordan du jobber med midlertidige tabeller i SQL Server. Vi starter ved det grunnleggende og lærer hvordan du lager temp -tabeller, bruker globale midlertidige tabeller, setter inn data i midlertidige tabeller og slipp temp -tabeller.

SQL Server Lag temp -tabeller

I SQL Server er det to primære metoder for å lage temp -tabeller:

  1. Bruke SQL SELECT -setning.
  2. Bruke Create Table -setningen.

La oss se på hver av metodene ovenfor.

Bruke SQL SELECT -setning

Du kan bruke Velg i uttalelse for å lage en midlertidig tabell og sette inn data fra et definert spørsmål.

Syntaksen for å lage en temp -tabell med SELECT -setningen er som vist:

Velg kolonne_list til #Templory_table_name fra tabell_navn der betinget_ekspression;

Vi bruker Select -setningen etterfulgt av navnet på den midlertidige tabellen. Navnet på en temp -tabell i SQL Server starter med et # tegn.

Tenk på eksemplet nedenfor som oppretter en temp -tabell ved hjelp av forskjellige kolonner i en eksisterende tabell:

Bruk SalesDB;
Velg * til #sales_temp fra salg der mengde> 5;

Ovennevnte spørring skal velge matchende poster og sette dem inn i den spesifiserte midlertidige tabellen.

SQL Server lagrer temp -tabeller i Tempdb -databasen. Dette er en systemdatabase som er opprettet automatisk av SQL Server.

I SQL Server Management Studio kan du se den midlertidige tabellen som er opprettet ovenfor ved å navigere: Databaser -> Systemdatabaser -> TEMPDB -> Midlertidige tabeller:

Hver midlertidige tabell inneholder en unik identifikator for postfix, inkludert en sekvens av numeriske verdier. Dette er fordi flere tilkoblinger kan lage midlertidige tabeller med lignende navn. SQL Server legger til en unik numerisk verdi på slutten av navnet for å unngå konflikter.

Bruke Create Table -spørringen

Den andre metoden vi kan bruke for å lage en midlertidig tabell er SQL Lag tabell uttalelse. Denne metoden er ikke veldig forskjellig fra en normal tabell. Imidlertid starter tabellnavnet med et pund # skilt.

For eksempel:

Lag tabell #my_temp_table (
id int ikke null identitet (1,1) primærnøkkel,
Navn varchar (50)
);

Ovennevnte spørring oppretter en midlertidig tabell med det spesifiserte navnet.

Når vi har opprettet temp -tabellen, kan vi sette inn data som en normal tabell som vist i spørringen nedenfor:

Bruk tempdb;
Sett inn #my_temp_table (navn)
Verdier ('mysql'),
('PostgreSql'),
('Mongodb'),
('Sqlite');

Hvis du trenger å få lagret postene i Temp -databasen, kan du bruke Select -setningen som vist:

Velg * fra #My_Temp_Table;

Eksempelutgang er som vist:

SQL Server Drop TEMP -tabeller

Når du har opprettet en temp -tabell, vil du sannsynligvis slette det etter bruk. I SQL Server er det to metoder for å slippe en midlertidig tabell:

Avslutte tilkoblingen

SQL Server vil automatisk slette alle midlertidige tabeller når tilkoblingen som opprettet dem er avsluttet.

Som nevnt er en temp -tabell bare tilgjengelig i forbindelsen som oppretter den. Når tilkoblingen er lukket, sletter SQL -serveren derfor tabellene og frigjør ressursene for andre tilkoblinger.

Drop Statement

Den andre metoden du kan bruke til å slette en temp -tabell er SQL Drop -spørringen. For eksempel for å slette my_temp_tabelen opprettet i de forrige spørsmålene:

Slipp tabell #my_temp_table;

Globale temp -tabeller

En temp -tabell er bare tilgjengelig for tilkoblingen som er opprettet som standard. Du kan imidlertid opprette en tabell tilgjengelig i alle tilkoblinger på serveren. Disse er kjent som globale midlertidige tabeller.

For å lage en global temp i SQL Server, bruk dobbeltpundskilt (##).

For eksempel:

Lag tabell ## my_temp_table (
id int ikke null identitet (1,1) primærnøkkel,
Navn varchar (50)
);
Bruk tempdb;
Sett inn ## my_temp_table (navn)
Verdier ('mysql'),
('PostgreSql'),
('Mongodb'),
('Sqlite');

I motsetning til et enkelt øktbord, synker SQL -serveren globale temp -tabeller etter at den opprettede tilkoblingen er lukket, og alle andre tilkoblinger er lukket.

I Avslutning

I denne artikkelen forsto du hvordan du jobber med de midlertidige tabellene i SQL Server. Temp -tabeller kan være gunstige når de brukes effektivt.

Takk for at du leser!