[英]Select stored procedure variables
有沒有一種方法可以選擇存儲過程將接收的變量?
例如,我有一個客戶表,我的主鍵是自動數字長。
我的存儲過程稱為SelectClientByKey
,類似於
select *
from clients
where clientId = @clientid
我還有許多其他存儲過程,我想進行查詢以獲取該存儲過程具有的變量及其數據類型。
就像是:
Select Variable, Type
From StoredProcedure
Where StoredProcedure.Name = 'SelectClientByKey'
結果應該是
@clientId bigInt
我不確定是否可行,有什么建議嗎?
從這里被無恥地偷了 。 如果運行它,它將為您提供所有存儲過程及其參數的列表以及一些有用的擴展信息。
SELECT
SCHEMA_NAME(SCHEMA_ID) AS [Schema],
SO.name AS [ObjectName],
SO.Type_Desc AS [ObjectType (UDF/SP)],
P.parameter_id AS [ParameterID],
P.name AS [ParameterName],
TYPE_NAME(P.user_type_id) AS [ParameterDataType],
P.max_length AS [ParameterMaxBytes],
P.is_output AS [IsOutPutParameter]
FROM sys.objects AS SO
INNER JOIN sys.parameters AS P
ON SO.OBJECT_ID = P.OBJECT_ID
WHERE SO.OBJECT_ID IN (
SELECT OBJECT_ID
FROM sys.objects
WHERE TYPE IN ('P','FN')
)
ORDER BY [Schema], SO.name, P.parameter_id
GO
有可能的。 您可以使用下面的SQL查詢來獲取存儲過程,參數列表及其數據類型:
SELECT
o.name as StoredProcedure, p.name as Parameter, t.name as DataType
FROM
sys.all_objects o
JOIN
sys.parameters p ON p.object_id = o.object_id
JOIN
sys.types t ON t.system_type_id = p.system_type_id
WHERE
o.name = 'SelectClientByKey' -- Your stored procedure name
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.