Hva er den beste måten å finne ut om en midlertidig tabell eksisterer i SQL Server?

stemmer
18

Når du skriver en T-SQL-skript som jeg har tenkt på re-kjører, ofte jeg bruker midlertidige tabeller for å lagre midlertidige data. Siden temp tabellen er laget på sparket, vil jeg gjerne være i stand til å slippe det bordet bare hvis det finnes (før jeg lager det).

Jeg skal legge den metoden som jeg bruker, men jeg ønsker å se om det er en bedre måte.

Publisert på 05/08/2008 klokken 18:18
kilden bruker
På andre språk...                            


3 svar

stemmer
25

IF Object_Id('TempDB..#TempTable') IS NOT NULL
BEGIN
    DROP TABLE #TempTable
END
Svarte 05/08/2008 kl. 18:21
kilden bruker

stemmer
14

Den OBJECT_ID funksjonen returnerer internt objekt id for den gitte objektet navn og type. 'Tempdb .. # t1' refererer til bordet # t1 i tempdb database. 'U' er for brukerdefinert tabell.

IF OBJECT_ID('tempdb..#t1', 'U') IS NOT NULL
  DROP TABLE #t1

CREATE TABLE #t1
(
  id INT IDENTITY(1,1),
  msg VARCHAR(255)
)
Svarte 05/08/2008 kl. 18:21
kilden bruker

stemmer
0
SELECT name
FROM sysobjects
WHERE type = 'U' AND name = 'TempTable'
Svarte 17/09/2008 kl. 20:50
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more