Как лучше всего определить, существует ли временная таблица в SQL Server?
-
08-06-2019 - |
Вопрос
При написании сценария T-SQL, который я планирую запустить повторно, я часто использую временные таблицы для хранения временных данных.Поскольку временная таблица создается «на лету», я хотел бы иметь возможность удалить эту таблицу, только если она существует (до того, как я ее создам).
Я опубликую метод, который использую сам, но хотелось бы посмотреть, есть ли способ получше.
Решение
IF Object_Id('TempDB..#TempTable') IS NOT NULL
BEGIN
DROP TABLE #TempTable
END
Другие советы
Функция 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)
)
SELECT name
FROM sysobjects
WHERE type = 'U' AND name = 'TempTable'
Не связан с StackOverflow