2012-01-11 3 views
0

나는 테이블에 레코드가 추가 된 것을 볼 수있는 방법이 있다면 누군가가 나에게 도움이되기를 바라고 있었다. 인스턴스, 나는 이미 미래의 문제를 위해 테이블에 트리거를 추가했다).날짜 수정 열이없는 날짜에서 수정 된 레코드 찾기?

우리는 다른 사람들의 역사적 작업을 자비로 여기고 있습니다. 불행히도 이러한 작업 중 하나는 많은 테이블에서 datododified 필드를 사용하지 않았습니다. 이제 de-commission에 잠재적 인 테이블을 찾기 위해 스키마를 점검 할 필요가 있으며이를 수행 할 수있는 방법이 있는지 알고 싶습니다.

답변

2

당신은 효과적으로 SOL,하지만 가까운 "경우 :

SELECT 
    [name], 
    create_date, 
    modify_date 
FROM sys.tables 
ORDER BY 
    modify_date DESC 

더 자세한 안내를위한 이것 좀 보라를 충분히 좋습니다 "라고 말하면 sys.dm_db_index_usage_stats과 특히 last_user_update 열을보십시오. 그 인덱스로 무언가가 무언가 일어난 마지막 시간을 알려줄 것입니다. 기본 키 색인 만 필터링하면 은 일반적으로은 삽입 된 행을 의미합니다.

select 
so.name, si.name, us.last_user_update 
from sys.dm_db_index_usage_stats us 
inner join sys.objects so 
    on so.object_id = us.object_id 
inner join sys.indexes si 
    on si.index_id = us.index_id 
    and si.object_id = us.object_id 
where si.is_primary_key = 1 
0

당신은이 정보를 얻기 위해 SQL 서버 메타 데이터를 사용할 수 있어야합니다 : http://www.google.co.uk/search?q=sql+table+last+modified

+2

MS SQL에서 "modify_date"(실제로 sys.objects의 일부이지만 sys.table을 통해 노출됨)는 마지막 ALTER 문이 테이블에서 발생한 때를 알려줍니다 (즉, 모든 메타 데이터). 테이블의 행 내용에 관한 내용이 없습니다. http://msdn.microsoft.com/en-us/library/ms190324.aspx – jklemmack

관련 문제