sql >> Database teknologi >  >> RDS >> Oracle

Globale Temp-tabeller - SQL Server vs Oracle

Midlertidige tabeller i Oracle er permanente objekter, der indeholder midlertidige data, der er sessionslokale. Midlertidige tabeller i SQL Server er midlertidige objekter.

  1. I SQL Server indeholder en global midlertidig tabel data, der er synlige for alle sessioner. "Globale midlertidige tabeller er synlige for enhver bruger og enhver forbindelse, efter at de er oprettet." http://msdn.microsoft.com/en-us/library/ms186986 .aspx
  2. Globale midlertidige tabeller er stadig midlertidige objekter, der ikke eksisterer i det uendelige og skal muligvis oprettes før brug. "Globale midlertidige tabeller er ... slettes, når alle brugere, der refererer til tabellen, afbryder forbindelsen til forekomsten af ​​SQL Server." http://msdn.microsoft.com/en-us/library/ms186986 .aspx

Jeg synes, at en lokal midlertidig tabel, eller tabelvariabel, er tættest på at være den samme som Oracles globale temp-tabel, den store forskel er, at du skal oprette den hver gang.

Normalt, i et tilfælde som dit, vil trin 3, tilføje rækker til den midlertidige tabel, ske ved at foretage en select ... into #temp_table_name .... (svarende til Oracle create table ... as select ... ) http://msdn.microsoft.com/en-us/library/ ms188029.aspx

Du kan heller ikke gøre følgende i en lagret proc:(pseudokode.)

begin proc
   call another proc to create local temp table.
   use temp table
end proc

Lokale midlertidige tabeller bliver ødelagt, når de vender tilbage fra den lagrede procedure, der oprettede dem.

Opdatering 2014-10-14: Opførselen af ​​lokale midlertidige tabeller er anderledes i Parallel Data Warehousev-versionen af ​​SQL Server. Midlertidige tabeller slettes ikke ved afslutning af den lagrede procedure, der oprettede dem, og fortsætter i stedet med at eksistere resten af ​​sessionen. Denne adfærd observeret på:

select @@version
Microsoft SQL Server 2012 - 10.0.5108.1 (X64) Jun 24 2014 20:17:02 Copyright (c) Microsoft Corporation Parallel Data Warehouse (64-bit) on Windows NT 6.2 <X64> (Build 9200: )


  1. Oracle indsæt tegn i en streng

  2. Fuldtekstsøgning returnerer forskellige resultater på test og live

  3. Adgang til en fil DSN fra Java

  4. php mysql tegnsæt:lagring af html af internationalt indhold