判断临时表是否存在

参考下面代码,有方法一和方法二,判断临时表是否存在。但是方法一非临时表也可以使用,而方法二,纯判断临时表是否存在。

方法一:

 

DECLARE @TABLE_NAME SYSNAME = '[#table_name]',  --传入临时表名
        @TABLE_SCHEMA SYSNAME = N'[dbo]',
        @TABLE_CATALOG SYSNAME = N'[tempdb]'    

IF OBJECT_ID(@TABLE_CATALOG + N'.'+ @TABLE_SCHEMA + N'.' + @TABLE_NAME) IS NOT NULL
    PRINT(N'存在。')
ELSE
    PRINT(N'不存在。')
Source Code

 

方法二:

 

DECLARE @TABLE_NAME SYSNAME = '[#table_name]',      --传入临时表名
        @TABLE_SCHEMA SYSNAME = N'[dbo]',
        @TABLE_CATALOG SYSNAME = N'[tempdb]'    

IF EXISTS(SELECT TOP 1 1 FROM [tempdb].[dbo].[sysobjects] o WHERE o.[xtype] IN ('U') AND o.[id] = object_id(@TABLE_CATALOG + N'.'+ @TABLE_SCHEMA + N'.' + @TABLE_NAME))
    PRINT(N'存在。')
ELSE
    PRINT(N'不存在。')
Source Code

 

举例说明,例子一,临时表名不存在:

 

再举个例子,临时表名存在:

 

posted @ 2019-05-21 13:44  Insus.NET  阅读(805)  评论(0编辑  收藏  举报