Как лучше всего определить, существует ли временная таблица в SQL Server?

При написании сценария T-SQL, который я планирую повторно запустить, я часто использую временные таблицы для хранения временных данных. Поскольку временная таблица создается «на лету», я хотел бы иметь возможность удалить эту таблицу, только если она существует (до ее создания).

Я опубликую метод, который я использую, но я хотел бы посмотреть, есть ли лучший способ.


person Nathan Bedford    schedule 05.08.2008    source источник


Ответы (2)


Функция OBJECT_ID возвращает внутренний идентификатор объекта для данного имени и типа объекта. 'tempdb..#t1' ссылается на таблицу #t1 в базе данных tempdb. 'U' для определяемой пользователем таблицы.

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

CREATE TABLE #t1
(
  id INT IDENTITY(1,1),
  msg VARCHAR(255)
)
person Nathan Bedford    schedule 05.08.2008

person    schedule
comment
Кит, похоже, что этот запрос найдет обычные пользовательские таблицы, но не временные. - person Nathan Bedford; 13.01.2009