1. Windows Server 2008 R2 x64 + SQL Server 2008 R2 x64 版本。
2. Oracle 11g R2 x64 版本。
若是使用 SSMS 管理工具來組態「連結伺服器」與 Oracle 執行個體連線,可能會遭遇到以下的錯誤訊息:
執行 Transact-SQL 陳述式或批次時發生例外狀況。 (Microsoft.SqlServer.ConnectionInfo) 不允許對系統目錄的特定更新。 (Microsoft SQL Server, 錯誤: 259) 如需說明,請按一下: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.1600&EvtSrc=MSSQLServer&EvtID=259&LinkId=20476
-- 01_不允許對系統目錄的特定更新之錯誤訊息
不知道為何使用 SSMS 管理工具執行設定「連結伺服器」的組態設定時,
SSMS 管理工具會自動產生以下修改系統資料表:[master].[dbo].[sysservers] 的範例程式碼範例程式碼:
update [master].[dbo].[sysservers] set [datasource] = 'test01' where [srvname] = 'Oracle_test01' GO -- 訊息 259,層級 16,狀態 1,行 1 不允許對系統目錄的特定更新。 -- Msg 259, Level 16, State 1, Line 1 Ad hoc updates to system catalogs are not allowed.
-- 02_訊息259_不允許對系統目錄的特定更新
這功能是用來更新系統資料表,但系統內定是不得更新系統資料表。
可能的解決方案:
仍是可以使用 SSMS 管理工具來組態。
但是,不按下「確定」,而是改以產生「指令碼」的方式後。
再自行刪除上述修改系統資料表:[master].[dbo].[sysservers] 的範例程式碼,就可以正常的執行後續的指令碼。
參考資料:
Editing Linked Server Properties Throws Ad hoc updates error
http://connect.microsoft.com/SQLServer/feedback/details/573861/editing-linked-server-properties-throws-ad-hoc-updates-error
使用連結伺服器(Linked Server) 連接到 Oracle;以 SQL Server 2008 R2 與 Oracle 11g R2 為例 -- 圖文版本
http://sharedderrickref.blogspot.com/2012/02/linked-server-oracle-sql-server-2008-r2.html
沒有留言:
張貼留言