Ant*_*ony 67 sql sql-server temp-tables sql-server-2008
我正在使用SQL Server 2008.假设我创建了一个像这样的临时表:
create table #MyTempTable (col1 int,col2 varchar(10))
Run Code Online (Sandbox Code Playgroud)
如何动态检索字段列表?我想看到这样的事情:
Fields:
col1
col2
Run Code Online (Sandbox Code Playgroud)
我在考虑查询sys.columns但它似乎没有存储任何关于临时表的信息.有任何想法吗?
kri*_*tof 125
select * from tempdb.sys.columns where object_id =
object_id('tempdb..#mytemptable');
Run Code Online (Sandbox Code Playgroud)
Ed *_*ess 28
select *
from tempdb.INFORMATION_SCHEMA.COLUMNS
where table_name like '#MyTempTable%'
Run Code Online (Sandbox Code Playgroud)
要使用information_schema而不与其他会话冲突:
select *
from tempdb.INFORMATION_SCHEMA.COLUMNS
where table_name =
object_name(
object_id('tempdb..#test'),
(select database_id from sys.databases where name = 'tempdb'))
Run Code Online (Sandbox Code Playgroud)
临时表在"tempdb"中定义,表名称为"mangled".
这个查询应该做的伎俩:
select c.*
from tempdb.sys.columns c
inner join tempdb.sys.tables t ON c.object_id = t.object_id
where t.name like '#MyTempTable%'
Run Code Online (Sandbox Code Playgroud)
渣