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

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

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

Ответы [ 3 ]

26 голосов
/ 05 августа 2008
IF Object_Id('TempDB..#TempTable') IS NOT NULL
BEGIN
    DROP TABLE #TempTable
END
14 голосов
/ 05 августа 2008

Функция 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)
)
0 голосов
/ 18 сентября 2008
SELECT name
FROM sysobjects
WHERE type = 'U' AND name = 'TempTable'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...