如何获得一个临时表的存在,在SQL Server 2008
问题描述:
我写此查询:如何获得一个临时表的存在,在SQL Server 2008
SELECT * INTO #nima FROM Region r
我每次执行此查询:
SELECT OBJECT_NAME(OBJECT_ID('tempdb..#nima'))
--or
SELECT OBJECT_NAME(OBJECT_ID('#nima'))
我得到NULL,但是当我在上面执行请选择我收到#nima alreadty存在的错误
答
这给#nima的内部编号为预期tempdb
SELECT OBJECT_ID('tempdb..#nima'))
OBJECT_NAME获取本地数据库ID。不会有任何对象(除了难得的机会)与ID本地,因为ID来自tempdb中
演示(未经测试!)
USE tempdb
SELECT OBJECT_NAME(OBJECT_ID('tempdb..#nima')) --#nima + system generated stuff
USE MyDB
SELECT OBJECT_NAME(OBJECT_ID('tempdb..#nima')) --null
-- Now we add DBID for tempdb
SELECT OBJECT_NAME(OBJECT_ID('tempdb..#nima'), 2) -- #nima + system generated stuff