SQL server链接服务器总结

一、使用 Microsoft OLE DB Provider For ODBC 链接MySQL

安装MySQL的ODBC驱动MyODBC
1、为MySQL建立一个ODBC系统数据源,例如:选择数据库为test ,数据源名称为myDSN
2、建立链接数据库
EXEC sp_addlinkedserver @server = 'Mysql111', @srvproduct='MySQL', @provider = 'MSDASQL', @datasrc = 'myDSN'
GO
EXEC sp_addlinkedsrvlogin    @rmtsrvname='Mysql111',@useself='false',@locallogin='sa',@rmtuser='feng',@rmtpassword='1'
3、查询数据
SELECT * FROM OPENQUERY (Mysql111 ,'select * from 表' )
下面这个不行:
SELECT * FROM OPENQUERY (Mysql111 ,'表' )
注意:不能直接用select * from 链接服务器名.数据库名.用户名.表(或视图) 四部分名称查询数据,可能是个Bug.

二、使用 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 用户名.存储过程名')

三、设置链接服务器以访问格式化文本文件

用于 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]

四、链接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',@rmtp
assword='密码'
然后你就可以如下:
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

五、设置链接服务器以访问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...表名

六、连接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连接服务器的实现
测试环境为:
操作系统: 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用户].[表名]。

exec sp_addlinkedserver 'server','','SQLOLEDB','192.168.1.8'
exec sp_addlinkedsrvlogin 'server','false',NULL,'sa','123'
go
select * from server.zlhotel.dbo.RoomInfo

go
exec sp_dropserver 'server2','droplogins'

如何在SQL   SERVER中建立与其它SQL   SERVER的连接 

创建一台名为   Server2   的链接服务器:  
USE   master  
EXEC   sp_addlinkedserver   'server2',N'SQL   Server'  
创建一个映射,使用帐号   Sa   和密码   Password   连接到链接服务器   Server2:  
EXEC   sp_addlinkedsrvlogin   'Server2',   'false',   NULL,   'Sa',   'Password'  
查询数据:  
SELECT   *   FROM   Server2.dbname.dbo.tablename 


操作表格式:Server2.dbname.dbo.tablename
--如果经常访问或数据量大,建议用链接服务器 

--创建链接服务器  
exec   sp_addlinkedserver     'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'  
exec   sp_addlinkedsrvlogin   'srv_lnk','false',null,'用户名','密码'  
go 

--查询示例  
select   *   from   srv_lnk.数据库名.dbo.表名 

--导入示例  
select   *   into   表   from   srv_lnk.数据库名.dbo.表名 

go  
--以后不再使用时删除链接服务器  
exec   sp_dropserver   'srv_lnk','droplogins' 


--如果只是临时访问,可以直接用openrowset  
--查询示例  
select   *   from   openrowset('SQLOLEDB'  
,'sql服务器名';'用户名';'密码'  
,数据库名.dbo.表名) 


--导入示例  
select   *   into   表   from   openrowset('SQLOLEDB'  
,'sql服务器名';'用户名';'密码'  
,数据库名.dbo.表名)

如何通过互联网联接到某个连上互联网的局域网中的一台计算机上的MSSQL上 


***************   能连接到SQL的几个要素.   ************************** 

1.先保证ping通(有防火墙的先关闭防火墙)  
2.在命令提示符下执行:telnet   <服务器ip地址>   1433   不会报错  
3.查询分析器中进行连接,时使用用ip连接:  
文件--连接--SQL   Server输入对方IP--连接使用,根据对方的SQL配置确定--确定 

确定SQL采用什么身份验证方式:  
企业管理器--右键SQL实例--属性--安全性--身份验证 


4.如果不行  
SQL   Server服务器--开始--程序--Microsoft   SQL   Server  
--服务器网络实用工具  
--启用   WinSock代理  
--代理地址:(sqlserver服务器IP)  
--代理端口--1433  
---确定 

5.如果还不行,在客户端装个SQL   Server客户端配置一下:  
开始--程序--Microsoft   SQL   Server--客户端网络实用工具  
--别名--添加  
--网络库选择"tcp/ip"--服务器别名输入SQL服务器名  
--连接参数--服务器名称中输入SQL服务器ip地址  
--如果你修改了SQL的端口,取消选择"动态决定端口",并输入对应的端口号

*************   连接实战   ************************************************] 

--如果你的两台电脑都有固定的公网IP地址,那就真恭喜你.连接有普通的局域网一样. 

--如果你的两台电脑只可以得到动态的公网的IP地址,用下面的方法: 到: http://www.comexe.cn/注册免费域名,安装它的动态域名解析软件.(当然,还有很多其他软件可供选择)   就可以了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值