Sql-Server
獲取儲存過程結果列類型
我正在嘗試獲取儲存過程返回的任何內容,包括列名及其類型。我可以用表來做到這一點,但我無法為儲存過程弄清楚。我嘗試了
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)
例如:
USER_ID VARCHAR(200)
我只需要儲存過程返回的列名及其數據類型。SQL Server 版本是 2014,如果重要的話。
有任何想法嗎?謝謝。
專門針對對象,有一個名為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。
您應該能夠為此使用新的系統儲存過程
sp_describe_first_result_set
-有關詳細資訊,請參閱 MSDN 文件:EXEC sp_describe_first_result_set N'YourStoredProcedureNameHere'