【发布时间】:2012-09-28 11:20:34
【问题描述】:
我想查找我创建了哪个存储过程,还想查找我在特定日期(例如 2012 年 9 月 27 日(27/09/2012))在我的 SQL Server 中修改了哪个存储过程。
是否有任何查询可以列出在该日期创建和修改的这些程序?
【问题讨论】:
标签: sql sql-server sql-server-2008 sql-server-2005
我想查找我创建了哪个存储过程,还想查找我在特定日期(例如 2012 年 9 月 27 日(27/09/2012))在我的 SQL Server 中修改了哪个存储过程。
是否有任何查询可以列出在该日期创建和修改的这些程序?
【问题讨论】:
标签: sql sql-server sql-server-2008 sql-server-2005
您可以在任何给定的 SQL Server 数据库中尝试此查询:
SELECT
name,
create_date,
modify_date
FROM sys.procedures
WHERE create_date = '20120927'
其中列出了名称、创建和最后修改日期 - 不幸的是,它没有记录谁创建和/或修改了相关存储过程。
【讨论】:
sys.functions catalog view?" - 接受的答案向您展示如何从 sys.objects 获取各种类型的函数
这里是“新学校”版本。
SELECT * FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = N'PROCEDURE' and ROUTINE_SCHEMA = N'dbo'
and CREATED = '20120927'
【讨论】:
INFORMATION_SCHEMA 将是当前首选方式(或“较新的学校”)的来源?
INFORMATION_SCHEMA.ROUTINES 表有ROUTINE_DEFINITION 列(这是存储过程的sql 代码),而sys.procedures 没有。
SELECT name
FROM sys.objects
WHERE type = 'P'
AND (DATEDIFF(D,modify_date, GETDATE()) < 7
OR DATEDIFF(D,create_date, GETDATE()) < 7)
【讨论】:
SELECT * FROM sys.objects WHERE type='p' ORDER BY modify_date DESC
SELECT name, create_date, modify_date
FROM sys.objects
WHERE type = 'P'
SELECT name, crdate, refdate
FROM sysobjects
WHERE type = 'P'
ORDER BY refdate desc
【讨论】:
对于 SQL Server 2012:
SELECT name, modify_date, create_date, type
FROM sys.procedures
WHERE name like '%XXX%'
ORDER BY modify_date desc
【讨论】: