Sök…


Anmärkningar

Tillfälliga tabeller är verkligen mycket hjälpsamma.

Tabellen kan skapas vid körning och kan utföra alla åtgärder som görs i en normal tabell.

Dessa tabeller skapas i en tempdb-databas.

Används när?

  1. Vi måste göra komplexa anslutningsoperationer.

  2. Vi gör ett stort antal radmanipulationer i lagrade procedurer.

  3. Kan ersätta användningen av markören.

Således ökar prestandan.

Lokal temptabell

  • Kommer att finnas tills den aktuella anslutningen kvarstår för användaren.

    Raderas automatiskt när användaren kopplar bort.

    Namnet bör börja med # (#temp)

     CREATE TABLE #LocalTempTable(
                    StudentID      int,
                    StudentName    varchar(50), 
                    StudentAddress varchar(150))
    
insert into #LocalTempTable values ( 1, 'Ram','India');

select * from #LocalTempTable

Efter att ha utfört alla dessa uttalanden om vi stänger frågefönstret och öppnar det igen och försöker infoga och markera det visar ett felmeddelande

“Invalid object name #LocalTempTable”

Global temp-tabell

  • Börjar med ## (## temp).

    Raderas endast om användaren kopplar bort alla anslutningar.

    Det uppför sig som ett permanent bord.

    CREATE TABLE ##NewGlobalTempTable(
                   StudentID      int,
                   StudentName    varchar(50), 
                   StudentAddress varchar(150))
    
    Insert Into ##NewGlobalTempTable values ( 1,'Ram','India');
    Select * from ##NewGlobalTempTable
    

Obs: Dessa kan ses av alla användare av databasen, oavsett behörighetsnivå.

Släpp temp-tabeller

Temp-tabeller måste ha unika ID (inom sessionen, för lokala temp-tabeller eller på servern, för globala temp-tabeller). Om du försöker skapa en tabell med ett redan existerat namn returnerar följande fel:

There is already an object named '#tempTable' in the database.

Om din fråga producerar temp-tabeller och du vill köra den mer än en gång måste du släppa tabellerna innan du försöker generera dem igen. Den grundläggande syntaxen för detta är:

drop table #tempTable

Att försöka köra denna syntax innan tabellen finns (t.ex. i den första körningen av din syntax) kommer att orsaka ytterligare ett fel:

Cannot drop the table '#tempTable', because it does not exist or you do not have permission.

För att undvika detta kan du kontrollera om tabellen redan finns innan du släpper den, så här:

IF OBJECT_ID ('tempdb..#tempTable', 'U') is not null DROP TABLE #tempTable


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow