webForumDet fria alternativet

Tempurär tabell.

Databaser & SQL

4 svar · 376 visningar · startad av Dino

Medlem sedan sep. 20011 914 inlägg
Frågan#1

Har i en sp nedan kod och i docen står det "Local temporary tables are visible only in the current session" så jag undrar hur länge en session varar. För jag vill inte att två separata connections skall utnyttja samma #TempTable.

CREATE TABLE #TempTable
(
   a_id INT PRIMARY KEY,
   a_pName nvarchar(150),
   a_company nvarchar(150)
)

INSERT INTO #TempTable
   SELECT 
          a_id,
          a_pName,
          a_company
   FROM Customer
   WHERE a_c_id = @c_id

Och sen oxå. Varför funkar inte detta.

DECLARE tbl table
INSERT INTO tbl 
   SELECT 
          a_id,
          a_pName,
          a_company
   FROM Customer
   WHERE a_c_id = @c_id
Medlem sedan dec. 200012 464 inlägg
#2

en session påbörjas när man loggar in och avslutas när man loggar ut.

DECLARE @tbl table(a_id int, 
          a_pName varchar(30),
          a_company varchar(30))
INSERT INTO @tbl 
   SELECT 
          a_id,
          a_pName,
          a_company
   FROM Customer
   WHERE a_c_id = @c_id
Medlem sedan sep. 20011 914 inlägg
#3

Vad är det för skillnad på.

CREATE TABLE #TempTable
(
   a_id INT PRIMARY KEY,
   a_pName nvarchar(150),
   a_company nvarchar(150)
)

INSERT INTO #TempTable
   SELECT 
          a_id,
          a_pName,
          a_company
   FROM Customer
   WHERE a_c_id = @c_id 

--och

DECLARE @tbl table(a_id int, 
          a_pName varchar(30),
          a_company varchar(30))
INSERT INTO @tbl 
   SELECT 
          a_id,
          a_pName,
          a_company
   FROM Customer
   WHERE a_c_id = @c_id
Medlem sedan dec. 200012 464 inlägg
#4

Tabellvariabler är mer minnesresidenta, temptabeller skapas i tempdb. Du kan skapa index för temptabeller vilket gör att de är att föredra om du har stora datamängder som du vill lagra temporärt. I de flesta andra fall är tabellvariabler att föredra.

Medlem sedan sep. 20011 914 inlägg
#5

Ok, tackar för det. Tabellvariabel får det bli. :)

258 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)