這個問題實在有點兒意思
因為其實我一直在迴避這個問題
從以前寫程式就一直會把整個組織的資料庫開成同一個

裡面放所需要的Table
可是呢 這樣做實在有點瞎
因為其實不同的系統 如果需要區隔資料庫的話
當然應該把資料庫的實體位置分開

而不是逃避 然後用所謂的Table名稱規則來識別

終於我被迫要面對這樣的問題
由於目前的環就就是這樣設計

不同的系統 使用不同的資料庫
當然就免不了要有一些共用的資料

那...如果你的系統 有某些東西 正好要使用到這些共用的功能
而且不能有迴避的狀況那怎麼辦
所謂的迴避可能就是 你可以自己建個Table在自己的資料庫
因為那個Table的資料可能萬年不變

總而言之
如果你的主機是同一台 但是資料庫不同
而你又要join它們之間的資料那該怎麼做

答案其實很簡單
就是使用完整的資料庫名稱就好了
通常我們只會

SELECT * FROM TableA ta
INNER JOIN TableB tb ON ta.xx=tb.xx
 

如果 TableA 在DBa 而 TableB 在 DBb 這時候只要改成使用完整的資料庫描述就好了
SQL Server範例語法如下

SELECT * FROM DBa.dbo.TableA ta
INNER JOIN DBb.dbo.TableB tb ON ta.xx=tb.xx 

當然 在兩個資料庫中都要有相對應的權限
那麼應該有人會問 這樣的語法寫在程式裡面那我的連線設定是要使用哪一個呢
答案是都可以 只要使用兩個中的其中一個就行了

MySQL呢 .....這才是我的工作上的重點啊 由於沒有MySQL就暫時先這樣
等到有環境在補上來

P.s 經測試.MySQL也是如上述方式 2008/10/16

arrow
arrow
    全站熱搜

    ADOLPH 發表在 痞客邦 留言(1) 人氣()