在编写我计划重新运行的T-SQL脚本时,我经常使用临时表来存储临时数据。由于临时表是动态创建的,我希望只有在存在时(在我创建它之前)才能删除该表。
我会发布我使用的方法,但我想看看是否有更好的方法。
答案 0 :(得分:26)
IF Object_Id('TempDB..#TempTable') IS NOT NULL
BEGIN
DROP TABLE #TempTable
END
答案 1 :(得分:14)
OBJECT_ID函数返回给定对象名称和类型的内部对象ID。 'tempdb ..#t1'是指tempdb数据库中的表#t1。 'U'用于用户定义的表。
IF OBJECT_ID('tempdb..#t1', 'U') IS NOT NULL
DROP TABLE #t1
CREATE TABLE #t1
(
id INT IDENTITY(1,1),
msg VARCHAR(255)
)
答案 2 :(得分:0)
SELECT name
FROM sysobjects
WHERE type = 'U' AND name = 'TempTable'