AAs*_*Ask 61 sql sql-server sql-server-2000 temp-tables
我意识到临时表是会话/连接绑定的,不可见或可从会话/连接访问.
我有一个长期运行的存储过程,在各个阶段创建临时表.
有没有办法可以看到当前临时表的列表?我需要什么特权才能这样做?
或者,
有没有办法可以看到正在运行的存储过程中执行的特定SQL语句?该过程作为SQL Server中的计划作业运行.
我正在使用SQL Server 2000.
谢谢你的指导.
San*_*dro 94
这就是你追求的吗?
select * from tempdb..sysobjects
--for sql-server 2000 and later versions
select * from tempdb.sys.objects
--for sql-server 2005 and later versions
Run Code Online (Sandbox Code Playgroud)
您可以通过以下查询获取临时表列表:
select left(name, charindex('_',name)-1)
from tempdb..sysobjects
where charindex('_',name) > 0 and
xtype = 'u' and not object_id('tempdb..'+name) is null
Run Code Online (Sandbox Code Playgroud)
SELECT left(NAME, charindex('_', NAME) - 1)
FROM tempdb..sysobjects
WHERE NAME LIKE '#%'
AND NAME NOT LIKE '##%'
AND upper(xtype) = 'U'
AND NOT object_id('tempdb..' + NAME) IS NULL
Run Code Online (Sandbox Code Playgroud)
如果要包含全局临时表,可以删除 ## 行。