2013-05-01 25 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')