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

17

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

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

    
задан Nathan Bedford 05.08.2008 в 20:18
источник

3 ответа

25
IF Object_Id('TempDB..#TempTable') IS NOT NULL
BEGIN
    DROP TABLE #TempTable
END
    
ответ дан GateKiller 05.08.2008 в 20:21
источник
14

Функция 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)
)
    
ответ дан Nathan Bedford 05.08.2008 в 20:21
источник
0
SELECT name
FROM sysobjects
WHERE type = 'U' AND name = 'TempTable'
    
ответ дан Keith Maurino 17.09.2008 в 22:50
источник