熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

SQL Server的鏈接服務器技術小結

2013-11-15 14:41:44  來源: SQL Server 

  使用 Microsoft OLE DB Provider For ODBC 鏈接MySQL
  
  安裝MySQL的ODBC驅動MyODBC
  
  為MySQL建立一個ODBC系統數據源例如:選擇數據庫為test 數據源名稱為
  
  myDSN
  
  建立鏈接數據庫
  
  EXEC sp_addlinkedserver @server = MySQLTest @srvproduct=MySQL
  
  @provider = MSDASQL @datasrc = myDSN
  
  GO
  
  EXEC sp_addlinkedsrvlogin
  
  @rmtsrvname=MySqlTest@useself=false@locallogin=sa@rmtuser=mys
  
  ql的用戶名@rmtpassword=mysql的密碼
  
  查詢數據
  
  SELECT * FROM OPENQUERY (MySQLTest select * from 表 )
  
  下面這個不行:
  
  SELECT * FROM OPENQUERY (MySQLTest )
  
  注意:不能直接用select * from 鏈接服務器名數據庫名用戶名表(或視圖)
  
  四部分名稱查詢數據可能是個Bug
  
  使用 Microsoft OLE DB Provider For ORACLE 鏈接ORACLE
  
  建立鏈接數據庫
  
  sp_addlinkedserver 別名 Oracle MSDAORA 服務名
  
  GO
  
  EXEC sp_addlinkedsrvlogin @rmtsrvname=別名
  
  @useself=false@locallogin=sa@rmtuser=oracle用戶名
  
  @rmtpassword=密碼
  
  查詢數據
  
  SELECT * FROM 別名用戶名表(視圖)
  
  注意:四部分名稱全部用大寫
  
  執行存儲過程
  
  使用OPENQUERY:
  
  SELECT *
  
  FROM OPENQUERY(別名 exec 用戶名存儲過程名)
  
  設置鏈接服務器以訪問格式化文本文件
  
  用於 Jet 的 Microsoft OLE DB 提供程序可用於訪問並查詢文本文件
  
  若要直接創建訪問文本文件的鏈接服務器而不將文件鏈接為 Access mdb 文件中的表請執行 sp_addlinkedserver如下例所示
  
  提供程序是 MicrosoftJetOLEDB提供程序字符串為Text數據源是包含文本文件的目錄的完整路徑名稱schemaini 文件(描述文本文件的結構)必須與此文本文件存在於相同的目錄中有關創建 schemaini 文件的更多信息請參見 Jet 數據庫引擎文檔
  
  Create a linked server
  
  EXEC sp_addlinkedserver txtsrv Jet
  
  MicrosoftJetOLEDB
  
  c:\data\distqry
  
  NULL
  
  Text
  
  GO
  
  Set up login mappings
  
  EXEC sp_addlinkedsrvlogin txtsrv FALSE NULL Admin NULL
  
  GO
  
  List the tables in the linked server
  
  EXEC sp_tables_ex txtsrv
  
  GO
  
  Query one of the tables: file#txt
  
  using a part name
  
  SELECT *
  
  FROM txtsrv[file#txt]
  
  鏈接SQL Server服務器:
  
  使用 ODBC 的 Microsoft OLE DB 提供程序
  
  EXEC sp_addlinkedserver 別名MSDASQLNULLNULLDRIVER={SQL
  
  Server};SERVER=遠程名;UID=用戶;PWD=密碼;
  
  如果加上參數@catalog可以指定數據庫
  
  exec sp_addlinkedsrvlogin @rmtsrvname=別名
  
  @useself=false@locallogin=sa@rmtuser=sa@rmtpassword=密碼
  
  使用SQL Server 的 Microsoft OLE DB 提供程序
  
  exec sp_addlinkedserver @server=別名
  
  @provider=sqloledb@srvproduct=@datasrc=遠程服務器名
  
  exec sp_addlinkedsrvlogin
  
  @rmtsrvname=wzb@useself=false@locallogin=sa@rmtuser=sa@rmtp
  
  assword=密碼
  
  然後你就可以如下:
  
  select * from 別名庫名dbo表名
  
  insert 庫名dbo表名 select * from 別名庫名dbo表名
  
  select * into 庫名dbo新表名 from 別名庫名dbo表名
  
  go
  
  例
  
  此示例在 SQL Server 的實例上創建一台名為 S_instance 的鏈接服務器
  
  該服務器使用 SQL Server 的 Microsoft OLE DB 提供程序
  
  EXEC sp_addlinkedserver @server=S_instance @srvproduct=
  
  @provider=SQLOLEDB
  
  @datasrc=S\instance
  
  例
  
  建立鏈接服務器
  
  EXEC sp_addlinkedserver xiaomingMSDASQLNULLNULLDRIVER={SQL
  
  Server};SERVER=;UID=sa;PWD=;
  
  建立鏈接服務器登錄映射
  
  exec sp_addlinkedsrvlogin
  
  @rmtsrvname=xiaoming@useself=false@locallogin=sa@rmtuser=sa
  
  @rmtpassword=
  
  go
  
  查詢數據
  
  select * from xiaomingschooladmindboagent
  
  刪除鏈接服務器登錄映射和鏈接服務器:
  
  exec sp_droplinkedsrvlogin xiaoming sa
  
  exec sp_dropserver xiaoming
  
  注意事項:
  
  SET IDENTITY_INSERT [ database[ owner] ] { table } { ON | OFF }
  
  所以不能通過連接服務器設置此屬性
  
  into 也存在這樣的問題
  
  select * into xiaomi from
  
  xiaomi
  
  設置鏈接服務器以訪問Access數據庫
  
  使用用於 Jet 的 Microsoft OLE DB 提供程序
  
  此示例創建一台名為 test的鏈接服務器
  
  說明 本示例假設已經安裝 Microsoft Access 和示例 Northwind 數據庫
  
  Northwind 數據庫駐留在 C:\
  
  USE master
  
  GO
  
   To use named parameters:
  
  EXEC sp_addlinkedserver
  
  @server = test
  
  @provider = MicrosoftJetOLEDB
  
  @srvproduct = OLE DB Provider for Jet
  
  @datasrc = C:\Northwindmdb
  
  GO
  
   OR to use no named parameters:
  
  USE master
  
  GO
  
  EXEC sp_addlinkedserver
  
  test
  
  OLE DB Provider for Jet
  
  MicrosoftJetOLEDB
  
  C:\Northwindmdb
  
  GO
  
  使用
  
  select * from test表名
  
  連接SYBASE
  
  首先你要在SQL服務器上裝上訪問sybase的客戶端
  
  創建鏈接服務器
  
  exec sp_addlinkedserver Sybase MSDASQL NULL NULL
  
  Driver={Sybase System
  
  };Database=hisdb;Srvr=;UID=sa;PWD=;
  
  使用:
  
  select * from Sybasehisdbdbotable
  
  方法二
  
  使用ODBC
  
  SQL Server到SYBASE連接服務器的實現
  
  作者: CCBZZP
  
  本文的測試環境為:
  
  操作系統: WINDOWS SERVER (繁體系統)
  
  安裝數據庫: SQLSERVER(英文版)和SYBASE客戶端(英文版)
  
  具體實現步驟:
  
  要求pc機上安裝SYBASE客戶端軟件和sqlserver軟件
  
  配置windows的ODBC數據源:
  
  開始菜單—》程式集—》系統管理工具—》資料數據源(ODBC)—》進入配置用戶DSN或者系統DSN均可以:添加—》選擇ADAPTIVE SERVER ANYWHERE—》自定義數據源名稱(隨意如: SYBASETEST)—》數據庫名稱(必選!)—》OK完成
  
   選擇剛才配置的數據源名稱 再選擇 配置 跳出SYBASETEST MESSAGES:
  
  The data source is not connected Connecting to the data source will
  
  provide useful information during configuration Would you like to
  
  connect to the data source?
  
  選擇YES(OK或確認)即可
  
  進入CONNECT TO SYBASE DATABASE畫面:
  
  USER ID: 輸入SYBASE DATABASE的用戶
  
  PASSWORD: 輸入SYBASE DATABASE的用戶的密碼
  
  CONNECTION MODE: 可以選擇默認的SHARE模式
  
  選擇OK(確認)即可!
  
  配置和測試ODBC完成!
  
  配置sqlserver中的連接服務器:
  
  企業管理器—》安全性—》連接服務器—》右鍵新建連接服務器—》定義連接名稱; 選其他數據源; 指定程序名稱為:SYBASE ADAPTIVE SERVER ANYWHERE PROVIDER; 產品名稱可不填; 數據源指定剛才ODBC中定義好的數據源名稱;提供程序字符串按以下格式填寫:User ID=username;Password=userpasswd(或者按如下格式:UID=
From:http://tw.wingwit.com/Article/program/SQLServer/201311/22185.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.