2010-09-03 74 views
0
-- find last usage info, 
-- how far back this information goes depends on the 
-- server/database settings 

select -- 
ss.name as SchemaName, so.name as SprocName 
,so.create_date as SprocCreated, so.modify_date as SprocModified 
,so.object_id 
,stat.last_user_seek,stat.last_user_scan,stat.last_user_lookup,stat.last_user_update 
,stat.last_system_seek,stat.last_system_scan,stat.last_system_lookup, stat.last_system_update 
from sys.objects so 

inner join sys.schemas ss on so.schema_id=ss.schema_id 

left join sys.dm_db_index_usage_stats stat 
on so.object_id=stat.object_id 

where ss.name<>'sys' and so.type='P' 
union 
select 
ss.name as SchemaName, so.name as SprocName 
,so.create_date as SprocCreated, so.modify_date as SprocModified 
,so.object_id 
,stat.last_user_seek,stat.last_user_scan,stat.last_user_lookup,stat.last_user_update 
,stat.last_system_seek,stat.last_system_scan,stat.last_system_lookup, stat.last_system_update 
from db_dit.dbo.sys.objects so 

inner join sys.schemas ss on so.schema_id=ss.schema_id 

left join sys.dm_db_index_usage_stats stat 
on so.object_id=stat.object_id 

where ss.name<>'sys' and so.type='P' 
order by case when stat.object_id is null then 0 else 1 end,ss.name,so.name 

我試圖驗證從開發存儲過程我的變化推到一個簡單的查詢坐好,但我似乎無法查詢在其他分貝我得到Invalid object name 'db_dit.dbo.sys.objects'.如何加入涉及sys表的2個數據庫之間的查詢?

回答

2

代替SYS表的db_dit.dbo.sys.objectsdb_dit.sys.objects

sys已經架構,無需dbo

例如

select * from tempdb.sys.objects s1 
    join msdb.sys.objects s2 on s1.name = s2.name 
+0

我可以發誓我試過這個,但是當我這樣做的時候,當我在它周圍引入'[]'來試圖讓它工作時,我肯定犯了錯誤。 – Maslow 2010-09-03 13:52:19

+0

+1簡單的錯誤啊。 – Maslow 2010-09-03 13:57:21