如何从临时表中获取列的列表?

qui*_*ker 4 sql-server temp-tables

我想获取临时表中的列列表,类似于INFORMATION_SCHEMA.columns视图.但是,这段代码:

select * 
from   tempdb.INFORMATION_SCHEMA.columns
where  TABLE_CATALOG = 'tempdb'
and    TABLE_NAME like '#myTemporaryTable%'
Run Code Online (Sandbox Code Playgroud)

每列和每个会话返回一行.这样做是否安全:

select distinct column_name,data_type 
from   tempdb.INFORMATION_SCHEMA.columns
where  TABLE_CATALOG = 'tempdb'
and    TABLE_NAME like '#myTemporaryTable%'
Run Code Online (Sandbox Code Playgroud)

我有一种感觉它不是,即使你收紧了类似的条款,所以它不会匹配myTemporaryTable和myTemporaryTable2.

Eri*_*icZ 6

如果你真的需要查询tempdb,我会使用object_id

SELECT  *
FROM    tempdb.sys.columns 
WHERE object_id = OBJECT_ID('tempdb..#myTemporaryTable')
Run Code Online (Sandbox Code Playgroud)