2013-02-08 76 views
1

我不打算深入细节,但我需要一种方法来确定存储过程返回列的类型。T-SQL检测存储过程返回的列的类型

有没有办法实现这一点,我不寻找一个解决方案,与指定的程序一起工作 - 我应该能够在其他程序中检测到这一点,作为参数接收其他程序的名称。

我使用SQL Server 2012的

+0

[检索存储过程的结果集列定义](http://stackoverflow.com/questions/7368864/retrieve-column-definition-for-stored-procedure-result-set) – Pondlife 2013-02-08 14:32:12

回答

2

在SQL Server 2012中您可以使用sp_describe_first_result_set

顾名思义这将返回有关第一结果集只能由一个存储过程返回的元数据。下面的例子。

CREATE PROC Foo 
AS 
SELECT * 
FROM sys.objects 

GO 

EXEC sp_describe_first_result_set @tsql = N'Foo' 
+0

致谢可能重复,我只在第一个结果集中感兴趣,这完全解决了我的问题。只是想知道,是否有办法从每个结果集中检索列类型信息? – gotqn 2013-02-08 15:06:03

+0

@gotqn - 在TSQL中不可能。通过实际执行存储过程并查看返回的结果集,您可以通过诸如'C#'的语言来完成。 – 2013-02-08 15:07:56

+0

以前版本的SQL的任何其他解决方案? – TravisWhidden 2013-09-27 19:24:45