如何在我的数据库中查询任何 returns 特定名称的 field/column 值的存储过程?
How can I query my Database for any Stored Proc that returns a field/column value of a specific name?
我想在我的数据库的元数据中查询 return 名为 "bidprice"
的字段或列中的值的任何存储过程
关于如何搜索需要一组特定参数的存储过程,即具有名为 Unit、Member、BegDate 和 EndDate 的参数的存储过程,我得到了一个很好的答案 ,这个:
; 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
效果很好;所以我希望也许我需要找到 return 特定名称的 field/column 值的存储过程,例如 "bidprice" 可能像这样简单:
; SELECT [specific_name] FROM information_schema.COLUMNS WHERE [COL_NAME] = "bidprice"
FROM T
...但在 Visual Studio.Server Explorer 中尝试(右键单击数据库连接的 Tables 文件夹,然后选择“新建查询”),我得到:
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'.
(删除前缀“;”时出现同样的错误)
在其结果集中搜索 return 的存储过程的正确方法是什么(among/amidst 其他) field/column 名为 "bidprice"?
您可以使用 sp_describe_first_result_set
这个 returns 来自 tsql 批处理的元数据。看看https://msdn.microsoft.com/en-us/library/ff878602%28v=sql.110%29.aspx
我想在我的数据库的元数据中查询 return 名为 "bidprice"
的字段或列中的值的任何存储过程关于如何搜索需要一组特定参数的存储过程,即具有名为 Unit、Member、BegDate 和 EndDate 的参数的存储过程,我得到了一个很好的答案
; 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
效果很好;所以我希望也许我需要找到 return 特定名称的 field/column 值的存储过程,例如 "bidprice" 可能像这样简单:
; SELECT [specific_name] FROM information_schema.COLUMNS WHERE [COL_NAME] = "bidprice"
FROM T
...但在 Visual Studio.Server Explorer 中尝试(右键单击数据库连接的 Tables 文件夹,然后选择“新建查询”),我得到:
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'.
(删除前缀“;”时出现同样的错误)
在其结果集中搜索 return 的存储过程的正确方法是什么(among/amidst 其他) field/column 名为 "bidprice"?
您可以使用 sp_describe_first_result_set
这个 returns 来自 tsql 批处理的元数据。看看https://msdn.microsoft.com/en-us/library/ff878602%28v=sql.110%29.aspx