因此,我有一個內部使用的網站,它追蹤員工的一堆stats。其中之一是他們是否錯過任何報告。由於沒有報告的項目列表每兩天才會更新一次,並且這些報告有3天的寬限期,所以我將項目記錄爲缺少報告的日期(releaseDt)與上次數據庫更新(@lastupdate)。這樣,如果報告數據庫沒有更新,但報告已完成,則該網站不會因爲缺少報告而惹惱某人。權限訪問sys.dm_db_index_usage_stats
的SQL代碼工作正常使用管理員級別的privledges,但顯而易見的原因,我不會讓ASP.NET帳戶已服務器管理水平。
我已經設置了ASP.NET的C#代碼用來登錄SQL帳戶,以及其他一切權限都是精品。 (只對其使用的特定數據庫具有讀訪問權限。)我無法弄清楚爲了有權讀取這個特定的動態管理視圖而訪問它。
會使用兩種Management Studio中,或使用GRANT
SQL語句升值的建議。
這似乎在問題有相關的查看信息:
sys.dm_db_index_usage_stats (Transact-SQL)
DECLARE @lastupdate datetime
SELECT @lastupdate = last_user_update from sys.dm_db_index_usage_stats
WHERE OBJECT_ID = OBJECT_ID('MissingReport')
SELECT
COALESCE(Creator, 'Total') AS 'Creator',
COUNT(*) AS Number,
'$' + CONVERT(varchar(32), SUM(Cost), 1) AS 'Cost'
FROM MissingReport
WHERE NOT(
[bunch of conditions that make something exempt from needing a report]
OR
(
DATEDIFF(day,ReleaseDt,@lastupdate) <= 3
)
)
GROUP BY Creator WITH ROLLUP
只是爲了迂迴清晰,這是一個'動態管理視圖',而不是'系統表'。 – 2012-07-13 15:53:13
更正了這一點。 – sylverfyre 2012-07-13 15:58:30
當然,我認爲代碼或背景故事也不相關 - 問題可能是一個或兩個班輪,而不會失去任何意義。 – 2012-07-13 16:00:10