2011-08-24 4 views
7

에서 최근에 추가 저장 발동의 목록이> 어제/최근 업데이트 날짜를 만든 SQL Server 데이터베이스에서 저장 발동의 목록을 얻을 수 있나요를 얻으려면?어떻게 SQL Server 데이터베이스

sys.sql_modules은 데이트를하지 않는 것 같습니다. 다른 곳에 저장해야합니다.

답변

6

이 자신의 창조와 함께 저장 프로 시저를 모두 나열하고 수정 된 날짜 :

SELECT name, modify_date 
FROM sys.objects 
WHERE type = 'P' 
    AND modify_date >= DATEADD(Day, -1, CONVERT(Date, GETDATE())) 
ORDER BY modify_date DESC; 

편집 : 항상 또는 create_date 후 동일 할 것이다 modify_date 이후는 ... 또한 방금 수 있습니다 언급 된 또 다른 대답으로 sys.procedures을 사용하십시오.

SELECT name, create_date, modify_date 
FROM sys.objects 
WHERE type = 'P' 
AND modify_date >= DATEADD(day, -1, getdate()) 
ORDER BY modify_date desc 
+1

때문에, 아마 하루의 시간 부분을 제거하는 더 좋은 생각입니다. –

2

이 시도해보십시오. Routines는 마지막 두 개의 열이 생성되어 그들을

select * 
from INFORMATION_SCHEMA.ROUTINES 
Where CREATED > DATEADD(dd, DATEDIFF(dd, 0, getdate()-1), 0) 
Order by CREATED Desc 

중 하나 LAST_MODIFIED입니다.

+1

OP는 "어제"이므로 하루 종일 포함시키는 것이 좋습니다. –

5

Information_Schema 다양한 개체를 검토 할 수 있도록 여러 가지 의견이 있습니다

4

사용 sys.procedures가 포함되어 있습니다. 더 직접 이상의 sys.objects (당신이 유형에 필터링 할 필요가 없습니다)와 - sys. 카탈로그 뷰는 INFORMATION_SCHEMA이 아닌 반면, 유지 및 새로운 기능에 대한 정보를 확장 계속 - INFORMATION_SCHEMA보다 작은 휴대용있다.

예를 들어, 자정에 생성되거나 어제부터 수정 된 모든 저장 프로 시저를 찾을 수 있습니다 : 영업 이익은 "어제"를 의미

DECLARE @yesterday DATE = DATEADD(DAY, -1, CURRENT_TIMESTAMP); 

SELECT OBJECT_SCHEMA_NAME([object_id]), name, create_date, modify_date 
    FROM sys.procedures 
    WHERE modify_date >= @yesterday 
    ORDER BY modify_date DESC; 
관련 문제