2011-04-20 72 views
3

在我們的組織中,數據庫服務器從SQL 2005升級到2008年。每當我們恢復任何我們收到的數據庫備份時。它的兼容性級別不是100.在某些情況下,它的兼容級別低於100會產生問題。我寫了一個將所有數據庫的兼容性級別更改爲100的過程。通過一個調度程序,我每10分鐘調用一次該過程。在數據庫服務器上恢復任何數據庫後執行過程

我想如果有人還原任何數據庫。所以應該自動調用該過程。或者如果任何數據庫恢復,如何調用該過程?

我可以通過下面的命令更改兼容性級別。

EXEC sp_dbcmptlevel <Database Name>, 100; 

ALTER DATABASE <Database Name> SET COMPATIBILITY_LEVEL = 100; 
+1

查看http://stackoverflow.com/questions/952611/is-it-possible-to-have-a-database-trigger-on-restore-in-sql-2005-or-2008 – 2011-04-20 11:03:18

+0

雖然我確實有一定要去看看'EVENT NOTIFICATIONS'。我發現使用[this as a template]設置通知非常簡單(http://sqlblogcasts.com/blogs/tonyrogerson/archive/2007/04/06/event-notifications-monitoring-blocked-processes-and- other-events-end-to-end-how-to-set-it-up-and-make-it-work.aspx),但是在設置權限時開始失去生存意願,所以Activation Procedure工作正常。 [可能覆蓋在這裏](http://rusanu.com/2006/03/01/signing-an-activated-procedure/) – 2011-04-20 14:55:29

回答

2

你描述被稱爲基於策略的管理和SQL Server內置了支持這一什麼,看到Administering Servers by Using Policy-Based Management。將服務器添加到PBM基礎中,然後部署數據庫兼容級別爲100或更高的策略並執行此策略。 PBM將負責其餘部分,強制將兼容級別保持在100,不僅在備份之後,而且在執行任何其他操作之後,並且防止嘗試降低兼容級別。

這裏有一篇文章描述如何做到這一點,附圖:Identify Databases Not in SQL Server 2008 Compatibility Level Using Policy Based Management

相關問題