2013-05-01 69 views
4

我想要获取临时表中列的列表,类似于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。

+0

可不可以给问题的一些情况下,我们也许能够解决该问题的进一步回不必tempdb的查询 – Chris 2013-05-01 17:09:20

回答

6

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

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