有關「鏈結資料庫」的一些問題

2021-08-22 03:53:34 字數 872 閱讀 2568

今天定義了乙個「鏈結資料庫」,它主要用來在本地資料庫上建立一條對於遠端資料庫的「鏈結」,使用時就像操作本地資料表(只能操作表和視表)一樣,給程式設計工作帶來了極大的便利和靈活。

在使用時遇到一些問題,特記錄下來:

1、可以利用系統儲存過程或企業管理器來建立,應該都比較簡單,但我在做的時候卻搞了半天也不成功,急得又是上網搜尋,又是問網友,最後發現錯誤的原因其實很鬱悶:在設定資料庫連線時把連線字串寫錯了!

請在查詢分析器中建立這個儲存過程,以後這個儲存過程在企業管理和查詢分析器都能修改了。

對於儲存過程,sql server 使用最初建立儲存過程時的 set ansi_nulls 設定值。無論隨後何時執行儲存過程,set ansi_nulls 的設定都還原為其最初使用的值並生效。當在儲存過程內喚醒呼叫 set ansi_nulls 時,其設定不更改。

在執行分布式查詢時應將 set ansi_nulls 設定為 on。

在執行分布式查詢時應將 ansi_warnings 設定為 on。

企業管理中的ansi_nulls和ansi_warnings選項不對,但沒有方法改動。在查詢分析器可以設定ansi_nulls和ansi_warnings選項,而且預設值是對的。所以能在查詢分析器建立此類儲存過程,而不能在企業管理器建立此類儲存過程。

3、嘗試利用鏈結資料庫進行分布式事務處理失敗:我原打算利用鏈結資料庫做乙個分布式事務處理,即在乙個事務中完成對不同資料庫(這裡是兩個sqlserver),好不容易寫好了儲存過程,在執行時卻報錯,錯誤號是7391,我在網上也找到了微軟針對這一錯誤的解決方案(但嘗試後仍然不能成功。最後只好放棄了這種做法,另外採取了其它的解決方案。

通過這兩天對鏈結資料庫的使用,感覺其在用於異類資料庫時可能會帶來一些好處,但也只限於對錶和檢視的操作,並無法滿足我對於系統的要求。

資料庫的一些問題

什麼是事務?事務的acid特性 事務的併發控制可能產生哪些問題 為了解決併發控制,定義了4種事務隔離級別 mysql innodb預設實現可重複讀級別 如何解決高併發場景下的插入重複 什麼是樂觀鎖,什麼是悲觀鎖 innodb vs myisam常見的區別 為什麼需要索引?查詢結構進化史 什麼是b t...

資料庫查詢與時間有關的一些問題

查詢最近的一條資訊 select column name s from table name where column name pattern order by create time desc limit 1 在某些情況下,如果明知道查詢結果只有乙個,sql語句中使用limit 1 會提高查詢效...

資料庫設計的一些問題

原則 如果列中要儲存的資料長度差不多一致的,則因該考慮用char 否則因該考慮用varchar。如果列中的最大資料長度小於50byte,則一般也考慮用char。當然如果這個列很少用,則基於節省空間和減少i o的考慮,還是可以選擇varchar 一般不宜定義大於50byte的char型別列。原則 de...