Zoeken…


Opmerkingen

Tijdelijke tabellen zijn echt heel nuttig.

De tabel kan tijdens runtime worden gemaakt en kan alle bewerkingen uitvoeren die in een normale tabel worden uitgevoerd.

Deze tabellen worden gemaakt in een tempdb-database.

Wanneer gebruikt?

  1. We moeten een complexe join-bewerking uitvoeren.

  2. We doen een groot aantal rijmanipulaties in opgeslagen procedures.

  3. Kan het gebruik van de cursor vervangen.

Dus verhoogt de prestaties.

Lokale Temp-tabel

  • Zal beschikbaar zijn tot de huidige verbinding voor de gebruiker blijft bestaan.

    Automatisch verwijderd wanneer de gebruiker de verbinding verbreekt.

    De naam moet beginnen met # (#temp)

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

select * from #LocalTempTable

Na het uitvoeren van al deze instructies als we het queryvenster sluiten en opnieuw openen en proberen in te voegen en selecteren, wordt er een foutbericht weergegeven

“Invalid object name #LocalTempTable”

Wereldwijde tempotabel

  • Zal beginnen met ## (## temp).

    Wordt alleen verwijderd als de gebruiker alle verbindingen verbreekt.

    Het gedraagt zich als een permanente tafel.

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

Opmerking: deze zijn zichtbaar voor alle gebruikers van de database, ongeacht het machtigingsniveau.

Dropping temp-tabellen

Temp-tabellen moeten unieke ID's hebben (binnen de sessie, voor lokale temp-tabellen of binnen de server voor globale temp-tabellen). Als u probeert een tabel te maken met een bestaande naam, wordt de volgende fout geretourneerd:

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

Als uw query tijdelijke tabellen produceert en u deze meerdere keren wilt uitvoeren, moet u de tabellen verwijderen voordat u ze opnieuw probeert te genereren. De basissyntaxis hiervoor is:

drop table #tempTable

Als u probeert deze syntaxis uit te voeren voordat de tabel bestaat (bijvoorbeeld bij de eerste keer dat uw syntaxis wordt uitgevoerd), veroorzaakt dit een andere fout:

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

Om dit te voorkomen, kunt u controleren of de tabel al bestaat voordat u deze neerzet, als volgt:

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


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow