sql >> Database teknologi >  >> RDS >> Sqlserver

Er det nødvendigt at bruge # til at oprette midlertidige tabeller i SQL server?

Ja. Du skal præfiksere tabelnavnet med "#" (hash) for at oprette midlertidige tabeller.

Hvis du IKKE har brug for bordet senere, så fortsæt og lav det. Midlertidige tabeller minder meget om normale tabeller. Den bliver dog oprettet i tempdb. Den er også kun tilgængelig via den aktuelle session, dvs. for EG:hvis en anden bruger forsøger at få adgang til den midlertidige tabel, som du har oprettet, vil han ikke være i stand til at gøre det.

"##" (dobbelt-hash opretter "Global" midlertidig tabel, som også kan tilgås af andre sessioner.

Se nedenstående link for grundlæggende oplysninger om midlertidige tabeller:http://www.codeproject.com/Articles/42553/Quick-Overview-Temporary-Tables-in-SQL-Server-2005

Hvis indholdet af din tabel er mindre end 5000 rækker og IKKE indeholder datatyper såsom nvarchar(MAX), varbinary(MAX), så overvej at bruge tabelvariabler.

De er de hurtigste, da de er ligesom alle andre variabler, der er gemt i RAM. De er også gemt i tempdb, ikke 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;

Flere oplysninger om tabelvariabler:http://odetocode.com/articles/365.aspx



  1. Hvordan kan jeg kalde en SQL-funktion i C#?

  2. Dræb automatisk langvarige forespørgsler (MySql), Apache Tomcat DataSource

  3. oracle-forespørgsel med flere filterbetingelser

  4. Hvordan vælger jeg en række baseret på en prioritetsværdi i en anden række?