Vă mulțumim pentru susținere

Care este cel mai bun mod de a determina dacă există o tabelă temporară în SQL Server?

Când scriem un script T-SQL pe care intenționez să îl reîncarc, de multe ori folosesc tabele temporare pentru a stoca date temporare. Deoarece tabelul temp este creat în zbor, aș vrea să pot abandona acel tabel numai dacă există (înainte să îl creez).

Voi posta metoda pe care o folosesc, dar aș vrea să văd dacă există o cale mai bună.

0
adăugat editat

3 răspunsuri

IF Object_Id('TempDB..#TempTable') IS NOT NULL
BEGIN
    DROP TABLE #TempTable
END
0
adăugat

Funcția OBJECT_ID returnează ID-ul obiectului intern pentru numele și tipul obiectului dat. 'tempdb .. # t1' se referă la tabelul # t1 din baza de date tempdb. 'U' este pentru tabelul definit de utilizator.

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

CREATE TABLE #t1
(
  id INT IDENTITY(1,1),
  msg VARCHAR(255)
)
0
adăugat
SELECT name
FROM sysobjects
WHERE type = 'U' AND name = 'TempTable'
0
adăugat
Keith, se pare că interogarea va găsi tabele de utilizatori normale, dar nu tabele temporare.
adăugat autor Nathan Bedford