在SQL中如何描述结果集的结构?

时间:2010-12-15 23:38:35

标签: sql sql-server

如果我想在MSSQL中描述一个表,我可以这样做:

exec sp_columns @table_name

我怎么能用结果集做同样的事情? 说我有类似

的东西
SELECT DISTINCT 
t3.ID,
t4.ID
FROM 
t2 INNER JOIN
t3 on t3.ID = t2.t3ID INNER JOIN 
t4 on t4.ID = t3.t4ID 

并希望运行类似

的内容
exec sp_columns @table_name = (SELECT DISTINCT 
t3.ID,
t4.ID
FROM 
t2 INNER JOIN
t3 on t3.ID = t2.t3ID INNER JOIN 
t4 on t4.ID = t3.t4ID 
)

为了获得我的结果集的描述。

1 个答案:

答案 0 :(得分:2)

听起来您希望自己的adhoc结果集具有sp_columns的功能。

听起来好像是从这个结果集创建一个临时表。请考虑使用SELECT INTO。你不会知道结构。

以下是概念证明:

SELECT * INTO ##newtable 
FROM (SELECT DISTINCT 
             t3.ID,
             t4.ID
       FROM 
       t2 INNER JOIN
       t3 on t3.ID = t2.t3ID INNER JOIN 
       t4 on t4.ID = t3.t4ID 
      ) as b

SELECT * FROM ##newtable