小編在一個將SQL 2000 Server替換成SQL 2008R2 Express的案例上,遇到了「SQL Server 已封鎖元件 ‘Ad Hoc Distributed Queries’ 的 STATEMENT ‘OpenRowset/OpenDatasource’ 之存取,因為此元件已經由此伺服器的安全性組態關閉。系統管理員可以使用 sp_configure 來啟用 ‘Ad Hoc Distributed Queries’ 的使用。如需有關啟用 ‘Ad Hoc Distributed Queries’ 的詳細資訊,請參閱《SQL Server 線上叢書》中的<介面區組態>(Surface Area Configuration)。」
這個發生的原因是SQL 2008R2把Facet的介面區組態中的「AdHocRemoteQueriesEnable」及「XPcmdShellEnabled」改為預設關閉了,因此只要依據狀況啟動這兩個功能即可排除。
透過SQL Server Management Studio連線資料庫後,在「物件總管」最上方點選滑鼠右鍵,接著選擇「Facet(A)」
Facet(F)選擇「介面區組態」,接著在Facet屬性(P)列表中將「AdHocRemoteQueriesEnable」及「XPcmdShellEnabled」改為「True」