不同版本作業系統和資料庫的之間連結,和操作
所以在157寫了個觸發器,同步更新34資料庫的個人計劃積分。但遇到了種種問題。
該問題自動化的整體思路:在157計劃計分表中建立觸發器,同步更新34資料庫(看是很簡單,實施有點麻煩)
問題一:64位Windows2003,SqlServer2005,連結32位Windows2003,SqlServer2000,無法連結
錯誤提示:
連結伺服器"nebula"的 OLE DB 訪問介面 "SQLNCLI" 返回了訊息 "未指定的錯誤"。
連結伺服器"nebula
訊息 7311,級別 16,狀態 2,第 1 行
無法獲取連結伺服器 "nebula" 的 OLE DB 訪問介面 "SQLNCLI" 的架構行集 "DBSCHEMA_TABLES_INFO"。該訪問介面支援該介面,但使用該介面時返回了失敗程式碼。
解決方案:
1.確保被連結的sqlserver2000安裝了sp4,否則請先安裝
2.安裝完成後,執行cmd,執行如下命令osql -U sa -P ovenjackchain -S 192.168.0.34 -i C:\instcat.sql
注意使用者名稱和密碼,最後的C:\instcat.sql,如果你安裝了sp4,那麼這個檔案肯定存在,自己搜尋出來。
3.回車,嘩嘩嘩的一幕,最後提示成功!
4.執行成功後,即可建立兩臺資料庫的連結了(如何建立,請搜尋知識庫)
問題二:建立觸發器,建立失敗
錯誤提示:包含的字首超出了最大限值。最多隻能有 2 個
觸發器如下:
01 |
create trigger T_Changescore |
02 |
on Y_TaskScoreplanning
for update , delete , insert as |
03 |
begin |
04 |
drop table nebula.Nebula.dbo.taskplaning; |
05 |
insert into nebula.Nebula.dbo.taskplaning |
06 |
select case [任務型態]
when '投-知識庫學習' then '學習' when '投-知識庫發展' then '發展' end tasktype, case 節點負責人
when '姚亮' then '姚亮' else substring (節點負責人,3,100)
end taskman,年度
year , isnull (m01,0)
m01, isnull (m02,0)
m02, isnull (m03,0)
m03, isnull (m04,0)
m04, isnull (m05,0)
m05, isnull (m06,0)
m06, isnull (m07,0)
m07, isnull (m08,0)
m08, isnull (m09,0)
m09, isnull (m10,0)
m10, isnull (m11,0)
m11, isnull
|