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

时间:2013-05-01 17:05:14

标签: sql-server temp-tables

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

select * 
from   tempdb.INFORMATION_SCHEMA.columns
where  TABLE_CATALOG = 'tempdb'
and    TABLE_NAME like '#myTemporaryTable%'

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

select distinct column_name,data_type 
from   tempdb.INFORMATION_SCHEMA.columns
where  TABLE_CATALOG = 'tempdb'
and    TABLE_NAME like '#myTemporaryTable%'

我感觉不是这样,即使你收紧了类似条款,也不会匹配myTemporaryTable和myTemporaryTable2。

1 个答案:

答案 0 :(得分:6)

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

SELECT  *
FROM    tempdb.sys.columns 
WHERE object_id = OBJECT_ID('tempdb..#myTemporaryTable')