Wat is de beste manier om te bepalen of een tijdelijke tabel in SQL Server bestaat?

stemmen
18

Bij het schrijven van een T-SQL-script dat ik van plan op re-lopen, vaak maak ik gebruik van tijdelijke tabellen om tijdelijke gegevens op te slaan. Omdat de tijdelijke tabel op de vlieg is gemaakt, zou ik graag in staat zijn om die tabel laten vallen alleen als het bestaat (voordat ik maak het).

Ik zal de methode die ik gebruik te posten, maar ik zou graag om te zien of er een betere manier.

De vraag is gesteld op 05/08/2008 om 19:18
bron van user
In andere talen...                            


3 antwoorden

stemmen
25

IF Object_Id('TempDB..#TempTable') IS NOT NULL
BEGIN
    DROP TABLE #TempTable
END
antwoordde op 05/08/2008 om 19:21
bron van user

stemmen
14

De OBJECT_ID functie geeft de interne object-ID voor de voornaam en objecttype. 'Tempdb .. # t1' verwijst naar de tafel # t1 in de tempdb database. 'U' is voor de gebruiker gedefinieerde tabel.

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

CREATE TABLE #t1
(
  id INT IDENTITY(1,1),
  msg VARCHAR(255)
)
antwoordde op 05/08/2008 om 19:21
bron van user

stemmen
0
SELECT name
FROM sysobjects
WHERE type = 'U' AND name = 'TempTable'
antwoordde op 17/09/2008 om 21:50
bron van user

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