我正在使用Microsoft SQL Server 2008.我有一個存儲過程。有沒有一個簡單的查詢,我可以執行,會給我參數名稱?查找存儲過程的參數名稱
我發現這個Link但它不是爲Microsoft SQL Server 2008
我正在使用Microsoft SQL Server 2008.我有一個存儲過程。有沒有一個簡單的查詢,我可以執行,會給我參數名稱?查找存儲過程的參數名稱
我發現這個Link但它不是爲Microsoft SQL Server 2008
爲了讓名字只有你可以使用此查詢:
SELECT name
FROM sys.parameters
WHERE object_id = OBJECT_ID('YourProcedureName')
爲了獲得更詳細的信息(名稱,類型和參數的長度):
SELECT p.name AS ParameterName, t.name AS ParameterType, p.max_length AS ParameterLength
FROM sys.parameters AS p
JOIN sys.types AS t ON t.user_type_id = p.user_type_id
WHERE object_id = OBJECT_ID('YourProcedureName')
在什麼馬立克說除此之外,你還可以通過編程使用DeriveParameters方法在.NET庫進行檢索:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommandbuilder.deriveparameters.aspx
看看我博客上的數據庫文件和對象。 http://craftydba.com/?p=2901
我有我的樣本[數學]數據庫稱爲SP_STORE_PRIMES的存儲過程。
一種方法是使用sys.parameters表。這可以選擇性地加入到類型中。下面加入sys.objects。
-- Parameters to SP & FN
select o.name, p.* from sys.parameters p join sys.objects o
on p.object_id = o.object_id where is_ms_shipped = 0
go
甲舊系統存儲過程是sp_sproc_columns。
-- Older system stored proc - show all parameters to one
sp_sproc_columns @procedure_name = 'SP_STORE_PRIMES'
go
這兩種方式都會讓你想去的地方。
'WHERE OBJECT_ID = OBJECT_ID( 'YourProcedureName')' –
我有這樣一些問題。我改變它說'SELECT * FROM sys.parameters;'但它返回0行。有任何想法嗎? – user489041
@ user489041 - 如果您從sys.parameters中選擇每條記錄,並且您的記錄計數爲0,那會導致我相信您沒有任何存儲過程,並且在您執行該查詢時在數據庫中創建*參數。 –