21

在编写我计划重新运行的 T-SQL 脚本时,我经常使用临时表来存储临时数据。由于临时表是动态创建的,因此我希望仅在该表存在时才能删除该表(在我创建它之前)。

我将发布我使用的方法,但我想看看是否有更好的方法。

4

3 回答 3

27
IF Object_Id('TempDB..#TempTable') IS NOT NULL
BEGIN
    DROP TABLE #TempTable
END
于 2008-08-05T18:21:38.730 回答
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)
)
于 2008-08-05T18:21:31.537 回答
0
SELECT name
FROM sysobjects
WHERE type = 'U' AND name = 'TempTable'
于 2008-09-17T20:50:20.867 回答