隨筆-199  評論-203  文章-11  trackbacks-0
          由于業務邏輯的多樣性
          經常得在sql server中查詢不同數據庫中數據
          這就產生了分布式查詢的需求

          現我將開發中遇到的幾種查詢總結如下:


          1.access版本

          --建立連接服務器
          EXEC sp_addlinkedserver
          --要創建的鏈接服務器名稱 
          'ai',            
          --產品名稱              
          'access',    
          --OLE DB 字符
          'Microsoft.Jet.OLEDB.4.0', 
          --數據源
          --格式:
          -- 盤符:\路徑\文件名
          -- \\網絡名\共享名\文件名  (網絡版本)
          'd:\testdb\db.mdb'
          GO


          --創建鏈接服務器上遠程登錄之間的映射
          --鏈接服務器默認設置為用登陸的上下文進行
          --現在我們修改為連接鏈接服務器不需使用任何登錄或密碼
          exec sp_addlinkedsrvlogin 'ai','false'
          go


          --查詢數據
          select * from ai...mytable
          go

           

          2.excel版本

          --建立連接服務器
          EXEC sp_addlinkedserver
          --要創建的鏈接服務器名稱 
          'ai_ex',            
          --產品名稱              
          'ex',    
          --OLE DB 字符
          'Microsoft.Jet.OLEDB.4.0', 
          --數據源
          --格式:
          -- 盤符:\路徑\文件名
          -- \\網絡名\共享名\文件名  (網絡版本)
          'd:\testdb\mybook.xls' ,
          null,
          --OLE DB 提供程序特定的連接字符串
          'Excel 5.0'
          GO


          ----創建鏈接服務器上遠程登錄之間的映射
          --鏈接服務器默認設置為用登陸的上下文進行
          --現在我們修改為連接鏈接服務器不需使用任何登錄或密碼
          exec sp_addlinkedsrvlogin 'ai_ex','false'
          go


          --查詢數據
          select * from ai_ex...sheet3$
          go


          3.ms sql版本

          --建立連接服務器
          EXEC sp_addlinkedserver
          --要創建的鏈接服務器名稱 
          'ai_mssql',            
          --產品名稱              
          'ms',    
          --OLE DB 字符
          'SQLOLEDB', 
          --數據源
          '218.204.111.111,3342'
          GO


          --創建鏈接服務器上遠程登錄之間的映射
          EXEC sp_addlinkedsrvlogin
          'ai_mssql',
          'false',
          NULL,
          --遠程服務器的登陸用戶名
          'zhangzhe',
          --遠程服務器的登陸密碼
          'fish2231'
          go


          --查詢數據
          select * from ai_mssql.pubs.dbo.jobs
          go


          --還有一個更簡單的辦法
          --這種方式在鏈接服務器建立后,它是默認開放RPC的

          --建立連接服務器
          EXEC sp_addlinkedserver
          --要創建的鏈接服務器名稱
          --這里就用數據源作名稱
          '218.204.111.111,3342',
          'SQL Server'
          GO


          --創建鏈接服務器上遠程登錄之間的映射
          EXEC sp_addlinkedsrvlogin
          '218.204.111.111,3342',
          'false',
          NULL,
          --遠程服務器的登陸用戶名
          'zhangzhe',
          --遠程服務器的登陸密碼
          'fish2231'
          go


          --查詢數據
          select * from [218.204.253.131,3342].pubs.dbo.jobs
          go

           

          4.Oracle版本

          --建立連接服務器
          EXEC sp_addlinkedserver
          --要創建的鏈接服務器名稱 
          'o',
          --產品名稱              
          'Oracle',
          --OLE DB 字符
          'MSDAORA',
          --數據源
          'acc'
          GO


          --創建鏈接服務器上遠程登錄之間的映射
          EXEC sp_addlinkedsrvlogin
          'o',
          'false',
          NULL,
          --Oracle服務器的登陸用戶名
          'F02M185',
          --Oracle服務器的登陸密碼
          'f02m185185'
          go

          --查詢數據
          --格式:LinkServer..Oracle用戶名.表名
          --注意用大寫,因為在Oracle的數據字典中為大寫
          select * from o..F02M185.AI
          go

           

          希望上面提到的知識對你有所提示
          當然歡迎交流和指正

          posted on 2009-03-23 15:43 Werther 閱讀(303) 評論(0)  編輯  收藏 所屬分類: 15.SQL Server
          主站蜘蛛池模板: 鹤峰县| 西和县| 陇南市| 敖汉旗| 江孜县| 长葛市| 芦山县| 杭州市| 五河县| 类乌齐县| 镇江市| 宣城市| 虹口区| 福建省| 屯留县| 慈溪市| 焉耆| 定结县| 凯里市| 菏泽市| 乌拉特后旗| 贺州市| 稷山县| 名山县| 海盐县| 泸西县| 黑山县| 开远市| 方山县| 京山县| 安康市| 瓦房店市| 台前县| 牟定县| 葵青区| 顺义区| 桐庐县| 土默特左旗| 德格县| 万州区| 翼城县|