sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server 2005 och temporärt tabellomfång

Lokala temporära tabeller (börja med #) är begränsade till din session; andra sessioner, även från samma användare/anslutningssträng, kan inte se dem. Reglerna för livslängden beror på om den lokala temporära tabellen skapades i en lagrad procedur:

  • En lokal temporär tabell som skapas i en lagrad procedur tas bort när proceduren avslutas; andra lagrade procedurer, eller anropsprocessen, kan inte se dem.
  • Andra lokala temporära tabeller tas bort när sessionen avslutas.

Globala temporära tabeller (börja med ##) delas mellan sessioner. De tas bort när:

  • Sessionen som skapade dem avslutas
  • OCH ingen annan session hänvisar till dem

Detta kommando kan vara praktiskt för att se vilka temporära tabeller som finns:

select TABLE_NAME from tempdb.information_schema.tables 

Och det här är praktiskt för att ta bort tillfälliga tabeller om du inte är säker på att de finns:

if object_id('tempdb..#SoTest') is not null drop table #SoTest

Se den här MSDN-artikeln för mer information.



  1. Varför kan jag inte utföra en aggregatfunktion på ett uttryck som innehåller ett aggregat men jag kan göra det genom att skapa en ny select-sats runt det?

  2. Hur hittar jag SQL Server som kör porten?

  3. Konvertera MySql DateTime-stämpel till JavaScripts datumformat

  4. Dynamiskt (kolumnbaserat) intervall