È necessario utilizzare #
prima di creare una tabella temporanea in SQL Server?
Esempio:
SELECT column1, column2, someInt, someVarChar
INTO ItemBack1
FROM table2
WHERE table2.ID = 7
Per ItemBack1 è necessario utilizzare il simbolo #
?
In caso contrario, a che cosa serve #
nella creazione di tabelle temporanee?
Sì. È necessario aggiungere il prefisso al nome della tabella con "#" (hash) per creare tabelle temporanee.
Se NON hai bisogno della tabella in seguito, vai avanti e creala. Le tabelle temporanee sono molto simili alle tabelle normali. Tuttavia, viene creato in tempdb. Inoltre, è accessibile solo tramite la sessione corrente, ad esempio per EG: se un altro utente tenta di accedere alla tabella temporanea creata da te, non sarà in grado di farlo.
"##" (il doppio hash crea una tabella temporanea "globale" a cui è possibile accedere anche da altre sessioni.
Fare riferimento al seguente link per le basi delle tabelle temporanee: http://www.codeproject.com/Articles/42553/Quick-Overview-Temporary-Tables-in-SQL-Server-2005
Se il contenuto della tabella è inferiore a 5000 righe e NON contiene tipi di dati come nvarchar (MAX), varbinary (MAX), considerare l'utilizzo di Variabili di tabella.
Sono i più veloci in quanto sono come qualsiasi altra variabile che è memorizzata nella RAM. Sono memorizzati anche in tempdb, non nella 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;
Ulteriori informazioni sulle variabili di tabella: http://odetocode.com/articles/365.aspx
La differenza tra queste due tabelle ItemBack1
e #ItemBack1
è che la prima è persistente (permanente) mentre l'altra è temporanea.
Ora, se dai nuovamente un'occhiata alla tua domanda
È necessario utilizzare # per creare la tabella temporanea nel server sql?
La risposta è Sì, perché senza questo precedente #
la tabella non sarà una tabella temporanea, sarà indipendente da tutte le sessioni e ambiti.