사용자가 테이블을 마지막으로 업데이트 한 시간을 가져 오려고합니다.
Declare @Collect Table (Name Varchar(100),last_user_update datetime)
Insert into @Collect
EXEC sp_MSForEachTable 'SELECT ''?'' as TableName,
last_user_update
FROM sys.dm_db_index_usage_stats
WHERE database_id = DB_ID(''SP3D_DB_RESEARCH_MDB'') AND OBJECT_ID = OBJECT_ID(''?'')'
SELECT * FROM @Collect ORDER BY last_user_update DESC
문제는 결과에서 일부 테이블이 3 번 나타나는 것입니다 (아래 이미지 참조).
복제 된 모든 테이블이 동일한 마지막 업데이트 시간을 갖는 것으로 보이기 때문입니다. 테이블 이름으로 결과를 그룹화하는 방법이 있습니까?
값이 실제로 동일한 DISTINCT
경우 쿼리에 추가 하고 고유 한 결과를 반환하도록 할 수 있습니다.
SELECT DISTINCT ''?'' as TableName, last_user_update ...
사실 후에 그룹화하고 싶고 마지막 업데이트 만 관심이 있다면 할 수 있습니다.
SELECT TableName, max(last_user_update) as last_update
FROM @Collect
GROUP BY TableName
ORDER BY 2 DESC
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다