sql >> Database >  >> RDS >> Sqlserver

Is het nodig om # te gebruiken voor het maken van tijdelijke tabellen in SQL-server?

Ja. U moet de tabelnaam vooraf laten gaan door "#" (hash) om tijdelijke tabellen te maken.

Als je de tabel later NIET nodig hebt, ga je gang en maak hem aan. Tijdelijke tabellen lijken erg op normale tabellen. Het wordt echter gemaakt in tempdb. Het is ook alleen toegankelijk via de huidige sessie, d.w.z. Voor EG:als een andere gebruiker toegang probeert te krijgen tot de door jou gemaakte tijdelijke tabel, kan hij dit niet doen.

"##" (dubbele hash creëert een "Globale" tijdelijke tabel die ook toegankelijk is voor andere sessies.

Raadpleeg de onderstaande link voor de basisprincipes van tijdelijke tabellen:http://www.codeproject.com/Articles/42553/Quick-Overview-Temporary-Tables-in-SQL-Server-2005

Als de inhoud van uw tabel minder dan 5000 rijen is en GEEN gegevenstypen zoals nvarchar(MAX), varbinary(MAX) bevat, overweeg dan om tabelvariabelen te gebruiken.

Ze zijn de snelste omdat ze net als alle andere variabelen zijn die in het RAM-geheugen zijn opgeslagen. Ze worden ook opgeslagen in tempdb, niet in RAM .

DECLARE @ItemBack1 TABLE
(
 column1 int,
 column2 int,
 someInt int,
 someVarChar nvarchar(50)
);

INSERT INTO @ItemBack1
SELECT column1, 
       column2, 
       someInt, 
       someVarChar 
  FROM table2
 WHERE table2.ID = 7;

Meer informatie over tabelvariabelen:http://odetocode.com/articles/365.aspx



  1. Hoe tags binnen een tag te verwijderen PHP XML MYSQL GCIDE terwijl tekst wordt achtergelaten

  2. Hoe een MSSQL opgeslagen procedure uit te voeren met ADOdb PHP Library?

  3. Lopende balans per product berekenen in mysql-weergave

  4. Mijn leer is echt traag. Eenvoudige query en één seconde om het resultaat te krijgen