【问题标题】:T-SQL Detect the type of the columns that store procedure returnsT-SQL 检测存储过程返回的列的类型
【发布时间】:2013-02-08 22:31:36
【问题描述】:

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

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

我使用的是 SQL Server 2012。

【问题讨论】:

标签: tsql stored-procedures sql-server-2012 detect column-types


【解决方案1】:

在 SQL Server 2012 中,您可以使用 sp_describe_first_result_set

顾名思义,这将返回关于first结果集的元数据,仅由存储过程返回。下面的例子。

CREATE PROC Foo
AS
SELECT *
FROM sys.objects

GO

EXEC sp_describe_first_result_set @tsql = N'Foo'

【讨论】:

  • 谢谢,我只对第一个结果集感兴趣,这完美地解决了我的问题。只是想知道,有没有办法从每个结果集中检索列类型信息?
  • @gotqn - 在 TSQL 中不可能。您可以使用 C# 等语言通过实际执行存储过程并查看返回的结果集来实现。
  • 对于以前的 SQL 版本还有其他解决方案吗?
  • @TravisWhidden - 不直接使用 TSQL。你可以SELECT ... INTO 一个表然后看看它的结构。或者在 TSQL 之外你可以SET FMTONLY ON 然后执行它并查看结果集的结构。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-31
相关资源
最近更新 更多