首页数据库类 mssql → SQL Server 跨服务器连接的多种方法

SQL Server 跨服务器连接的多种方法

日期:2007-4-29 08:47:42 出处:其他转载 作者:不详 人气:
上一页 [1] [2] 下一页

C. 使用 Microsoft OLE DB Provider for Jet。

以下范例藉由Microsoft OLE DB Provider for Jet 存取 Microsoft Access Northwind 资料库中的 orders 资料表。

a、以下范例假设已经安装 Access。

1、USE pubs
GO
Select a.*
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
   'c:\MSOffice\Access\Samplesorthwind.mdb';'admin';'mypwd', orders) 
   AS a
GO
2、
select * from openrowset('Microsoft.Jet.OLEDB.4.0', 
'E:\Study\Access\test.mdb';'admin';'','select * from student')
或
Select a.*
FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0', 
   'E:\Study\Access\test.mdb';'admin';'', student) 
  AS a

b、以Excel为例,必须安装了Excel。

select * 
from 
OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel5.0;HDR=YES;
DATABASE=G:\WorkEveryDay\DayDo\OrderList',OrderList$)

DATABASE=G:\WorkEveryDay\DayDo\OrderList'是Excel的表名及路径,OrderList$是工作区的名字MICROSOFT.JET.OLEDB.4.0是Excel的驱动程序,也可以用MICROSOFT.JET.OLEDB.5.0,MICROSOFT.JET.OLEDB.8.0,测试所用的window 2003及SQL Server 2000其中OrderList$所面的$不能少,要不能报错,$是代表是工作区3.以VFP(DBF文件名)。

select * from openrowset('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;
SourceDB=D:\','select * from [temp.DBF]')

说明:SourceType是数据源类型,SourceDB是数据源,后面是操作DBF的SQL查询语句。

D. 使用 OPENROWSET 与 INNER JOIN 中的其他资料表。

以下范例选取储存在相同电脑上 SQL Server Northwind 资料库的 customers 资料表的所有资料,以及 Access Northwind 资料库的 orders 资料表的所有资料。

附注 以下范例假设已经安装 Access。

USE pubs
GO
Select c.*, o.*
FROM Northwind.dbo.Customers AS c INNER JOIN 
   OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
   'c:\MSOffice\Access\Samplesorthwind.mdb';
'admin';'mypwd', orders) 
   AS o
   ON c.CustomerID = o.CustomerID 
GO

E.将存储过程的记录集插入到虚拟表中(执行的存储不策有全局虚拟表)。

如:

Select * into #t
FROM OPENQUERY([192.168.42.43], 'exec [Order].dbo.Or_Select_BackListDetail ''BK0607190001''')

如下:就会报错,必须先建表create table #t,而且此虚拟表的参数一定要与存储过程的参数一样。

Insert into #t

exec [Order].dbo.Or_Select_BackListDetail 'BK0607190001'

F:将打开的相应的文件(dbf,exec等等),从SQL里插入数据进行。

insert into    
--select * from 
openrowset('MSDASQL', 'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=d:\',
'select * from temp.DBF') 
select top 100 orderno,shipto from ordermaster

注:

1、两数字段结构一样(长度、类型)

2、保证导出表没有为null或空的字段

3、将你上面的语句改为下面的select * from tmp.DBF,就是不要那个[]

3、建立链接服务器

if   exists   (select   1   from   master..sysservers   
where   srvname   =   'ls_Source')   
exec   sp_dropserver   'ls_Source','droplogins'   
go   exec   sp_addlinkedserver   
 'ls_Source', 'ms','SQLOLEDB','TAODBSV001' 
go
exec sp_addlinkedsrvlogin 
 'ls_Source','false','sa','read',''

 

上一页 [1] [2] 下一页

关于本站 | 帮 助 | 广告服务 | 版权声明 | 业务合作 | 捐助本站 | 软件发布 | 联系我们
77资源下载 www.77zy.com ©2007-2008 版权所有
备案编号:赣ICP备07002641号  QQ:674648476