在進行一些公司專屬應用程式開發時候,經常地需要在Sqlserver2000裡面,直接的調用其它資料庫的資料,來實現資料共用和更新,當創立連結的伺服器之後,關於調用資料時候的方案,一般分為兩種:
1。當遠端資料表資料量較小几百條或更小可以採用直接調用方案,直接在引用時候,用sql查詢;例如:select * from NEWE..CAP.EP_ITE
2。部分表的資料量很大,如果使用相對較多時候,每一次都直接調用連結資料庫,不僅增大了傳輸資料量影響速度,而且在網路或是遠端資料庫出問題時候影響本地的使用,因此建議採用建立本地表,然後定期檢查更新來使用。
以建立對 Oracle8i 的連結的伺服器為例來說明,步驟如下:
1。首先SqlServer2000的伺服器上,需要安裝Oracle8i Client,通過Net8 Administration 裡面的 Net8 Configuration Assistant或者利用Net Easy Config 來建立對Oracle8的網路服務名,然後再SqlServer裡面建立連結的伺服器,填好“資料來源”也就是前面建立好的網路服務名,在“安全性”裡面,使用“遠程登入的安全上下文”方式;
2。建立作業,建議採用調用專門的procedure來實現資料的檢查更新;對於Oracle資料庫主要是增加資料情況,採用提前比較遠端資料表和本地表總數方式比較,不同則插入新增資料;對於Oracle經常存在原來資料更新情況則只能定期更新本地表,建議盡量少採用delete和insert方式,多採用藉助暫存資料表的update方式。
3。在作業裡面,執行調用更新連結的伺服器和本地表資料時候,總是會出現下面的錯誤,
執行使用者: xzc。不允許用 SETUSER 啟用的 Windows NT 使用者進行遠端存取。 [SQLSTATE 42000](錯誤 7410). 步驟失敗。
一般時候,我們採用將該更新作業的“所有者”改為本地系統管理員方式啟動就可以啦,另外注意資料更新時候的最佳化分析,應該盡量減少對於sqlServer資料庫的insert和delete操作,並且經常需要大量更新的資料表,建議不要建立自動增加的ID。
以上屬於個人應用體會,歡迎探討指正!