【问题标题】:List of stored procedures inside a database数据库中的存储过程列表
【发布时间】:2015-08-09 20:34:06
【问题描述】:

我的一个数据库 (Parameter of stored procedure not found) 遇到了正确的调用数据

为了进一步调试,提取数据库中可用存储过程的列表以及调用每个过程的参数可能会有所帮助。

如何使用 Delphi 代码从数据库中获取这些信息?

  • 德尔福 XE 2
  • 数据库 SQL Server 2008
  • ADO

【问题讨论】:

  • 您使用什么服务器后端,您使用哪些 Delphi 组件来访问数据库?您应该添加与之前 q 中有关这些的相同信息...
  • 查询存储过程的语法完全取决于数据库。例如,对于 MSSQL,您可以使用 SELECT [Routine_Name] FROM [INFORMATION_SCHEMA].[ROUTINES] WHERE [ROUTINE_TYPE] = 'PROCEDURE'
  • 这个问题和Delphi完全没有关系。这严格来说是一个 MS SQL Server SQL 问题。针对系统数据库的相同查询可以在 Delphi 或任何其他能够使用 ADO 的语言中工作。

标签: sql-server stored-procedures


【解决方案1】:

以下查询将列出默认数据库中所有用户定义的存储过程(包括它们的参数和参数类型):

SELECT
  sp.name,
  p.name AS Parameter,
  t.name AS [Type]
FROM
 sys.procedures sp
  LEFT JOIN sys.parameters p
    ON sp.object_id = p.object_id
  LEFT JOIN sys.types t
    ON p.system_type_id = t.system_type_id
WHERE 
  is_ms_shipped = 0 
ORDER BY
  sp.name

将其放入 ADOQuery 对象并将其设置为 Active。 (使用 LEFT JOINS 更新答案,使其包含不带参数的 SP)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 2012-07-27
    • 2012-03-18
    • 2016-11-27
    • 2012-03-15
    • 2015-06-24
    • 1970-01-01
    相关资源
    最近更新 更多