Mei*_*Hat 10 sql-server stored-procedures datatypes
我试图获取存储过程返回的任何内容,以及列名及其类型。我可以用表来做到这一点,但我无法弄清楚存储过程。我尝试过,sp_columns但只能使其适用于表格。
我也尝试过这样的事情,但我不确定我应该匹配什么。
SELECT *
FROM SYS.PROCEDURES (NOLOCK) AS AA
INNER JOIN SYS.SCHEMAS (NOLOCK) AS BB ON (AA.schema_id = BB.schema_id)
INNER JOIN SYS.COLUMNS (NOLOCK) AS CC ON (AA.object_id = CC.object_id)
Run Code Online (Sandbox Code Playgroud)
例如:
USER_ID VARCHAR(200)
Run Code Online (Sandbox Code Playgroud)
我只需要存储过程返回的列名及其数据类型。如果重要的话,SQL Server 版本是 2014。
有任何想法吗?谢谢。
mar*_*c_s 15
您应该能够为此使用新的系统存储过程sp_describe_first_result_set-有关详细信息,请参阅 MSDN 文档:
EXEC sp_describe_first_result_set N'YourStoredProcedureNameHere'
Run Code Online (Sandbox Code Playgroud)
Sea*_*ser 13
特别是对于对象,有一个名为sys.dm_exec_describe_first_result_set_for_object的 DMV ,如果 SQL Server 能够确定它应该是什么(例如动态 SQL,不会返回有效结果),它将描述第一个结果集。
特别是对于 T-SQL 或批处理相关项目,有不同的 DMV 和伴随的系统存储过程。DMV 是sys.dm_exec_describe_first_result_set并且与 dmv 并行的存储过程是sp_describe_first_result_set。
| 归档时间: |
|
| 查看次数: |
23719 次 |
| 最近记录: |