risposta-alla-domanda-sullo-sviluppo-web-bd.com

È necessario utilizzare # per creare tabelle temporanee in SQL Server?

È 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?

89
Arun CM

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

148
mobiledaemon

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 è , perché senza questo precedente # la tabella non sarà una tabella temporanea, sarà indipendente da tutte le sessioni e ambiti.

14
zzlalani