WEB开发网
开发学院数据库MSSQL Server SQL Server 跨服务器连接的多种方法 阅读

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

 2007-05-17 09:36:12 来源:WEB开发网   
核心提示: 说明:SourceType是数据源类型,SourceDB是数据源,后面是操作DBF的SQL查询语句,D. 使用 OPENROWSET 与 INNER JOIN 中的其他资料表,SQL Server 跨服务器连接的多种方法(5),以下范例选取储存在相同电脑上 SQL Server North

说明: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:MSOfficeAccessSamplesorthwind.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 3 4 5 

Tags:SQL Server 服务器

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接