Web*_*uy2 8 sql sql-server alias
使用SQL Server.
我有一个非常广泛的查询,有很多别名等...
有没有办法,只使用SQL(存储过程很好,但不是PHP等),从这个查询中获取所有列名的列表?(我意识到我可能必须将我的查询嵌入到此解决方案中,但这很好.只是一个临时措施.)
谢谢!
Con*_*rix 13
如果您使用的是SQL Server 2012或更高版本,则可以利用sys.dm_exec_describe_first_result_set
SELECT name
FROM
sys.dm_exec_describe_first_result_set
('Your Query Here', NULL, 0) ;
Run Code Online (Sandbox Code Playgroud)
这个评论太长了.
有多种方法可以从查询中获取列,例如:
select top 0 s.*
from (<your query here>) s;
Run Code Online (Sandbox Code Playgroud)
然后你可以解析结果.
但是,我发现另一种方法很有用.使用相同的逻辑创建视图或表:
select top 0 s.*
into _TempTableForColumns
from (<your query here>) s;
Run Code Online (Sandbox Code Playgroud)
然后使用information_schema(或者如果您愿意,使用系统表):
select *
from information_schema.columns
where table_name = '_TempTableForColumns' and schema_name = 'dbo';
drop table _TempTableForColumns;
Run Code Online (Sandbox Code Playgroud)
此方法的优点是您可以获取类型信息以及列名称.但是引擎仍然必须运行查询,即使没有返回任何行,也可能需要时间.尽管在编译之后列名称和类型可用,但我不知道如何在不执行查询的情况下获取它们.
| 归档时间: |
|
| 查看次数: |
17749 次 |
| 最近记录: |