OpenDataSource函数,OPENROWSET函数

/*
openDatasource:不使用连接服务器的名称,而提供特殊的链接信息.
使用openDatasource的前提是仅当 DisallowAdhocAccess
注册表选项针对指定的提供程序显式设置为 0,
并且启用 Ad Hoc Distributed Queries 高级配置选项时,
OPENDATASOURCE 才可用于访问 OLE DB 数据源中的远程数据。
如果未设置这些选项,则默认行为不允许即席访问。
*/
--代码如下:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
--(1)例如现在我想打开D盘中BJData.mdb中的BJAdmin表的信息
select ID,Title,OwnerName from
opendataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:/BJData.mdb";')...BJAdmin
/*Results:
ID          Title                OwnerName
----------- -------------------- --------------------------------------------------
1           xinrong             
4           webmaster            admin
5           bing                 webmaster
(3 行受影响)
*/
--(2)我现在要将BJAdmin中BJNewsCategory中的信息插入到A表中
--
先查询下Test.Newscategory
select * from  Test.dbo.Newscategory
/*
ID          Title
----------- --------------------
1           MSSQL
(1 行受影响)
*/
insert into Newscategory select Title from OpenDataSource
(
'Microsoft.Jet.OLEDB.4.0','Data Source="D:/BJData.mdb";')...BJNewsCategory
--导入之后再查询
select * from  Test.dbo.Newscategory
/*
ID          Title
----------- --------------------
1           MSSQL
2           新闻分类
3           新闻动态
4           工程案例
5           膜结构知识
6           在建工程
(6 行受影响)
*/
--上面的都是在MSSQL中查询Access中的信息,现在将MSSQL中的信息导入到Access中去
--
(3)将AdminInfo的信息插入到BJData.mdb中的BJAdmin中去
select * from Test.dbo.AdminInfo
/*
ID          Title
----------- ------------------------------
1           ws_hgo
(1 行受影响)
*/
insert into opendatasource('microsoft.Jet.OLEDB.4.0','Data source="D:/BJData.mdb"')...BJAdmin
(Title,RoleID)
select Title,1 from AdminInfo
--然后查询BJAdmin表的信息
select ID,Title,OwnerName from
opendataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:/BJData.mdb";')...BJAdmin
/*
ID          Title                OwnerName
----------- -------------------- --------------------------------------------------
1           xinrong             
4           webmaster            admin
5           bing                 webmaster
12          ws_hgo               NULL
(4 行受影响)
*/
--(4)上面说的是Access与MSSQl之间的操作现在操作下
--
Excel与MSSQL之间的操作
--
从Excel中读取信息
select * from OpenDataSource
(
'Microsoft.Jet.OLEDB.4.0','Data Source="D:/work.et";Extended properties=Excel 5.0')...[sheet1$]
/*
EmployeeName        Sex            Age             Post
-----------       -----------    --------      ------------
ws_hgo             Boy            23             Senior Programmer
yangzhognyuan      Boy            24             Programmer
chenjing           Girl           24             Designer
(3 行受影响)

--(5)
*/
/*将本地表中的信息导入到远程数据库表中
下面的例子将本地whsxjAdmin种的(Title,Password)插入到远程
zhongyiAdmin中去
*/
insert into opendatasource('SQLOLEDB','Data Source=IP地址;User ID=zhongyi;password=xinrongkeji').sqlzhongyi.dbo.zhongyiAdmin(Title,Password)
select Title,Password from whsxjAdmin
--下面说下OPENROWSET
/*

包含访问 OLE DB 数据源中的远程数据所需的全部连接信息。
当访问链接服务器中的表时,这种方法是一种替代方法,
并且是一种使用 OLE DB 连接并访问远程数据的一次性的临时方法。
*/
--(1)直接查询远程服务器上面的信息
select ID,Title from OpenRowset
(
'SQLOLEDB','IP地址';'zhongyi';'xinrongkeji','select * from sqlzhongyi.dbo.zhongyiAdmin') t
--(2)查询Access里面的信息
select * from OpenRowset
(
'microsoft.Jet.OLEDB.4.0','d:/BJData.mdb';'Admin';'',BJAdmin) as g

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值