2014-09-30 55 views
0

我有一个存储过程看起来像这样:获取存储过程的列名

SELECT 
    nTransactionId 
    ,strInstrument 
FROM dbo.Deals 

我读过,对于SQL Server 2012,我可以使用sp_describe_first_result_set,但有对SQL Server 2008中的任何替代方案?

当我说我想列名时,我的意思是nTransactionIdstrInstrument。即使查询不返回任何结果。

非常感谢!

+0

可能重复的[检索存储过程结果集的列定义](http://stackoverflow.com/questions/7368864/retrieve-column-definition-for-stored-procedure-result-set) – GarethD 2014-09-30 10:11:50

+0

@GarethD我可以不要使用链接服务器。 – MrProgram 2014-09-30 10:27:18

+0

在这种情况下,我相当确信你不能这样做。据我所知,你有3个选择:** 1。**升级到SQL Server 2012. ** 2。**使用链接服务器(尽管它只是将它链接到自己)。 ** 3。**找到不需要知道程序结果定义的问题的解决方案。 – GarethD 2014-09-30 10:32:42

回答

0

为此我一直都用:

SET FMTONLY ON; 

只返回元数据到客户端。可以用于测试 响应的格式而不实际运行查询。

看一看这里:Sql Server SET FMTONLY (Transact-SQL)

这就是DataSet设计是为了得到一个程序的parameteres例如使用。