程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> SQL Server的鏈接辦事器技巧小結

SQL Server的鏈接辦事器技巧小結

編輯:MSSQL

SQL Server的鏈接辦事器技巧小結。本站提示廣大學習愛好者:(SQL Server的鏈接辦事器技巧小結)文章只能為提供參考,不一定能成為您想要的結果。以下是SQL Server的鏈接辦事器技巧小結正文


1、應用 Microsoft OLE DB Provider For ODBC 鏈接MySQL

裝置MySQL的ODBC驅動MyODBC

1、為MySQL樹立一個ODBC體系數據源,例如:選擇數據庫為test ,數據源稱號為

myDSN

2、樹立鏈接數據庫

EXEC sp_addlinkedserver @server = 'MySQLTest', @srvproduct='MySQL', 

@provider = 'MSDASQL', @datasrc = 'myDSN'
GO
EXEC sp_addlinkedsrvlogin 
@rmtsrvname='MySqlTest',@useself='false',@locallogin='sa',@rmtuser='mysql的用戶名',@rmtpassword='mysql的暗碼'

3、查詢數據

SELECT * FROM OPENQUERY (MySQLTest ,'select * from 表' )

上面這個不可:
SELECT * FROM OPENQUERY (MySQLTest ,'表' )

留意:不克不及直接用select * from 鏈接辦事器名.數據庫名.用戶名.表(或視圖)

四部門稱號查詢數據,能夠是個Bug.


2、應用 Microsoft OLE DB Provider For ORACLE 鏈接ORACLE

1、樹立鏈接數據庫

sp_addlinkedserver '別號', 'Oracle', 'MSDAORA', '辦事名'
GO
EXEC sp_addlinkedsrvlogin @rmtsrvname='別號',@useself='false',@locallogin='sa',@rmtuser='oracle用戶名',@rmtpassword='暗碼'

2、查詢數據

SELECT * FROM 別號..用戶名.表(視圖)

留意:四部門稱號全體用年夜寫

3、履行存儲進程

應用OPENQUERY:
SELECT *
FROM OPENQUERY(別號, 'exec 用戶名.存儲進程名')


3、設置鏈接辦事器以拜訪格局化文本文件

用於 Jet 的 Microsoft OLE DB 供給法式可用於拜訪並查詢文本文件。

若要直接創立拜訪文本文件的鏈接辦事器而不將文件鏈接為 Access .mdb 文件中

的表,請履行 sp_addlinkedserver,以下例所示。
供給法式是 Microsoft.Jet.OLEDB.4.0,供給法式字符串為"Text"。數據源是包

含文本文件的目次的完全途徑稱號。schema.ini 文件(描寫文本文件的構造)必

須與此文本文件存在於雷同的目次中。有關創立 schema.ini 文件的更多信息,

請拜見 Jet 數據庫引擎文檔。

--Create a linked server.
EXEC sp_addlinkedserver txtsrv, 'Jet 4.0',
'Microsoft.Jet.OLEDB.4.0',
'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: file1#txt
--using a 4-part name.
SELECT *
FROM txtsrv...[file1#txt]

4、鏈接SQL Server辦事器:

1、應用 ODBC 的 Microsoft OLE DB 供給法式

EXEC sp_addlinkedserver '別號','','MSDASQL',NULL,NULL,'DRIVER={SQL

Server};SERVER=長途名;UID=用戶;PWD=暗碼;'
假如加上參數@catalog,可以指定命據庫
exec sp_addlinkedsrvlogin  @rmtsrvname='別號',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='暗碼'


2、應用SQL Server 的 Microsoft OLE DB 供給法式

exec sp_addlinkedserver @server='別號',@provider='sqloledb',@srvproduct='',@datasrc='長途辦事器名'
exec sp_addlinkedsrvlogin 
@rmtsrvname='wzb',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='暗碼'

然後你便可以以下:

select * from 別號.庫名.dbo.表名
insert 庫名.dbo.表名 select * from 別號.庫名.dbo.表名
select * into 庫名.dbo.新表名 from 別號.庫名.dbo.表名
go

例1、

此示例在 SQL Server 的實例上創立一台名為 S1_instance1 的鏈接辦事器,
該辦事器應用 SQL Server 的 Microsoft OLE DB 供給法式。

EXEC    sp_addlinkedserver    @server='S1_instance1', @srvproduct='',
                                @provider='SQLOLEDB', @datasrc='S1/instance1'

例2、

--樹立鏈接辦事器

EXEC sp_addlinkedserver 'xiaoming','','MSDASQL',NULL,NULL,'DRIVER={SQL

Server};SERVER=192.168.0.1;UID=sa;PWD=123;'
--樹立鏈接辦事器登錄映照
exec sp_addlinkedsrvlogin 
@rmtsrvname='xiaoming',@useself='false',@locallogin='sa',@rmtuser='sa',
@rmtpassword='123'
go
--查詢數據
select * from xiaoming.schooladmin.dbo.agent 

--刪除鏈接辦事器登錄映照和鏈接辦事器:
exec sp_droplinkedsrvlogin 'xiaoming' ,'sa'
exec sp_dropserver  'xiaoming'


留意事項:

SET IDENTITY_INSERT [ database.[ owner.] ] { table } { ON | OFF }
所以不克不及經由過程銜接辦事器設置此屬性
into 也存在如許的成績
select  * into   xiaoming.northwind.dbo.tt from

xiaoming.northwind.dbo.tt

5、設置鏈接辦事器以拜訪Access數據庫

應用用於 Jet 的 Microsoft OLE DB 供給法式
此示例創立一台名為 test的鏈接辦事器。

解釋  本示例假定曾經裝置 Microsoft Access 和示例 Northwind 數據庫,且

Northwind 數據庫駐留在 C:/。


USE master
GO
-- To use named parameters:
EXEC sp_addlinkedserver
   @server = 'test',
   @provider = 'Microsoft.Jet.OLEDB.4.0',
   @srvproduct = 'OLE DB Provider for Jet',
   @datasrc = 'C:/Northwind.mdb'
GO
-- OR to use no named parameters:
USE master
GO
EXEC sp_addlinkedserver
   'test',
   'OLE DB Provider for Jet',
   'Microsoft.Jet.OLEDB.4.0',
   'C:/Northwind.mdb'
GO
應用
select * from test...表名

6、銜接SYBASE
--起首,你要在SQL辦事器上裝上拜訪sybase的客戶端

--創立鏈接辦事器
exec sp_addlinkedserver 'Sybase1', ' ', 'MSDASQL', NULL, NULL
 ,'Driver={Sybase System

11};Database=hisdb;Srvr=10.211.135.12;UID=sa;PWD=1111;'
應用:
select * from Sybase1.hisdb.dbo.table1

辦法二
應用ODBC
SQL Server到SYBASE銜接辦事器的完成
 
作者:  CCBZZP

 
本文的測試情況為:
操作體系:  WINDOWS2000 SERVER (繁系統統)
裝置數據庫: SQLSERVER2000(英文版)和SYBASE8.0客戶端(英文版)
 

詳細完成步調:
1.請求pc機上裝置SYBASE8.0客戶端軟件和sqlserver2000軟件。
2.設置裝備擺設windows的ODBC數據源:
開端菜單—》程式集—》體系治理對象—》材料數據源(ODBC)—》進入設置裝備擺設用

戶DSN或許體系DSN都可以:添加—》選擇ADAPTIVE SERVER ANYWHERE8.0—》自定

義數據源稱號(隨便如: SYBASETEST)—》數據庫稱號(必選!)—》OK完成。

3. 選擇適才設置裝備擺設的數據源稱號, 再選擇 設置裝備擺設, 跳出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完成!


4.設置裝備擺設sqlserver2000中的銜接辦事器:
企業治理器—》平安性—》銜接辦事器—》右鍵新建銜接辦事器—》界說銜接名

稱; 選其他數據源; 指定法式稱號為:SYBASE ADAPTIVE SERVER ANYWHERE

PROVIDER8.0; 產物稱號可不填; 數據源指定適才ODBC中界說好的數據源稱號;

供給法式字符串按以下格局填寫:User ID=username;Password=userpasswd(或許

按以下格局:UID=username;PWD=userpasswd),這裡的用戶名和暗碼對應所要連

接的SYBASE數據庫中的用戶名和暗碼 —》 平安性標簽頁裡:設置用此平安高低

文停止,並錄入SYBASE的數據庫用戶名和暗碼—》辦事器選項標簽頁可默許—》

肯定。
5.預備任務全體完成!在sqlserver企業治理器—》平安性—》銜接辦事器翻開剛

建好的銜接辦事器—》點擊表,便可在左邊窗口看到該SYBASE數據庫用戶具有的

的一切表名,但在這裡還其實不能檢查表的記載,這個須要在sqserver的查詢剖析

器頂用詳細sql完成!拜訪表時,應用格局為: [銜接辦事器名]..[SYBASE用戶

].[表名]。更具體詳細的應用這裡不再贅述。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved