首先,我编写了带有连接的选择查询来检索所需的列。之后使用Top 0我得到了所需的列。会是这样的,
我不想要任何记录。但我只需要这样的列名的结果,
示例代码:
select Top 0 *tablename*.* from my *tablename*
(some joins and where conditions)
tablename => 包含动态列(在进行连接之后)
首先,我编写了带有连接的选择查询来检索所需的列。之后使用Top 0我得到了所需的列。会是这样的,
我不想要任何记录。但我只需要这样的列名的结果,
示例代码:
select Top 0 *tablename*.* from my *tablename*
(some joins and where conditions)
tablename => 包含动态列(在进行连接之后)
灵感来自@Tony Hopkinson 的建议
SELECT c.name FROM sys.tables t
INNER JOIN sys.columns c
on c.object_id = t.object_id
WHERE t.name = @table
如果您可以使用游标(即您可以使用 Transact-SQL),那么sp_describe_cursor_columns
(http://technet.microsoft.com/en-us/library/ms182755(v=sql.105).aspx)可能会对您有所帮助。
如果您想从 SQL Server 外部执行此操作,所有数据库访问技术都提供某种 API 来访问结果集的元数据。