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

голоса
18

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

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

Задан 05/08/2008 в 19:18
источник пользователем
На других языках...                            


3 ответов

голоса
25

IF Object_Id('TempDB..#TempTable') IS NOT NULL
BEGIN
    DROP TABLE #TempTable
END
Ответил 05/08/2008 в 19: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)
)
Ответил 05/08/2008 в 19:21
источник пользователем

голоса
0
SELECT name
FROM sysobjects
WHERE type = 'U' AND name = 'TempTable'
Ответил 17/09/2008 в 21:50
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more