sql >> Databasteknik >  >> RDS >> Sqlserver

Är det nödvändigt att använda # för att skapa temporära tabeller i SQL-server?

Ja. Du måste prefixa tabellnamnet med "#" (hash) för att skapa tillfälliga tabeller.

Om du INTE behöver tabellen senare, fortsätt och skapa den. Tillfälliga tabeller är mycket som vanliga tabeller. Den skapas dock i tempdb. Dessutom är den bara tillgänglig via den aktuella sessionen, dvs. för EG:om en annan användare försöker komma åt temptabellen som skapats av dig, kommer han inte att kunna göra det.

"##" (dubbelhash skapar "Global" temporär tabell som också kan nås av andra sessioner.

Se länken nedan för grunderna för tillfälliga tabeller:http://www.codeproject.com/Articles/42553/Quick-Overview-Temporary-Tables-in-SQL-Server-2005

Om innehållet i din tabell är mindre än 5000 rader och INTE innehåller datatyper som nvarchar(MAX), varbinary(MAX), överväg att använda tabellvariabler.

De är snabbast eftersom de är precis som alla andra variabler som är lagrade i RAM-minnet. De lagras också i tempdb, inte i 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;

Mer information om tabellvariabler:http://odetocode.com/articles/365.aspx



  1. Ansluter SQL Server till Oracle

  2. Olagligt blandning av sammanställningsfel från MySql när rails testsvit körs

  3. Android Room Library kan inte kopiera databasen från tillgången

  4. SQL som kräver självanslutning och rankning