确定SQL Server中是否存在临时表的最佳方法是什么?

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

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

0
额外 编辑
意见: 3

3 答案

IF Object_Id('TempDB..#TempTable') IS NOT NULL
BEGIN
    DROP TABLE #TempTable
END
0
额外

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)
)
0
额外
SELECT name
FROM sysobjects
WHERE type = 'U' AND name = 'TempTable'
0
额外
基思,它看起来像查询将找到正常的用户表,但不是临时表。
额外 作者 Nathan Bedford,