![](/img/trans.png)
[英]How can a stored proc retrieve the name of the database it's running in?
[英]How can I query my Database for any Stored Proc that returns a field/column value of a specific name?
我想查詢數據庫的元數據中是否有任何存儲過程,這些存儲過程從名為“ bidprice”的字段或列中返回值
我有一個很好的答案在這里了解如何搜索需要一組特定的參數,即對於有冠名單位,會員,BegDate,日期和結束日期,該參數存儲的特效存儲的特效:
; WITH T AS (SELECT [specific_name] FROM information_schema.parameters WHERE [parameter_name] = '@Unit'
UNION ALL
SELECT [specific_name] FROM information_schema.parameters WHERE [parameter_name] = '@Member'
UNION ALL
SELECT [specific_name] FROM information_schema.parameters WHERE [parameter_name] = '@BegDate'
UNION ALL
SELECT [specific_name] FROM information_schema.parameters WHERE [parameter_name] = '@EndDate')
SELECT [specific_name]
FROM T
GROUP BY [specific_name] HAVING COUNT(*) = 4
那很好用; 因此,我希望也許可能需要找到返回特定名稱的字段/列值(例如“ bidprice”)的存儲過程,就像下面這樣簡單:
; SELECT [specific_name] FROM information_schema.COLUMNS WHERE [COL_NAME] = "bidprice"
FROM T
...但是在Visual Studio.Server Explorer中嘗試一下(右鍵單擊數據庫連接的Tables文件夾,然后選擇New Query),我得到:
Msg 156, Level 15, State 1, Line 2
Incorrect syntax near the keyword 'FROM'.
這種類型的查詢的[specific_name]錯誤嗎? 這種查詢類型是否為COLUMNS或[COL_NAME]?
我還嘗試通過這種方式簡化查詢:
; SELECT [specific_name] FROM information_schema.COLUMNS WHERE [COL_NAME] = "bidprice"
...但是得到:
Msg 207, Level 16, State 1, Line 1
Invalid column name 'COL_NAME'.
Msg 207, Level 16, State 1, Line 1
Invalid column name 'bidprice'.
Msg 207, Level 16, State 1, Line 1
Invalid column name 'specific_name'.
(和刪除前置的“;”時的錯誤完全相同)
什么是搜索在結果集中返回的存儲過程(其中包括/除其他以外)名為“ bidprice”的字段/列的正確方法?
您可以使用sp_describe_first_result_set
返回sp_describe_first_result_set
批處理中的元數據。 看看https://msdn.microsoft.com/zh-cn/library/ff878602%28v=sql.110%29.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.