资源描述:
《在t-sql语句中访问远程数据库(openrowset、opendatasource、openquery)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、在T-SQL语句中访问远程数据库(openrowset/opendatasource/openquery)1、启用AdHocDistributedQueries在使用openrowset/opendatasource前搜先要启用AdHocDistributedQueries服务,因为这个服务不安全所以SqlServer默认是关闭的启用AdHocDistributedQueries的方法SQLServer阻止了对组件'AdHocDistributedQueries'的STATEMENT'OpenRowset/OpenDa
2、tasource'的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用sp_configure启用'AdHocDistributedQueries'。有关启用'AdHocDistributedQueries'的详细信息,请参阅SQLServer联机丛书中的"外围应用配置器"。启用AdHocDistributedQueries的方法,执行下面的查询语句就可以了:execsp_configure'showadvancedoptions',1reconfigureexecsp_configure'
3、AdHocDistributedQueries',1reconfigure使用完毕后,记得一定要要关闭它,因为这是一个安全隐患,切记执行下面的SQL语句execsp_configure'AdHocDistributedQueries',0reconfigureexecsp_configure'showadvancedoptions',0reconfigure2、使用示例--创建链接服务器execsp_addlinkedserver'ITSV','','SQLOLEDB','远程服务器名或ip地址'execsp_addl
4、inkedsrvlogin'ITSV','false',null,'用户名','密码'--查询示例select*fromITSV.数据库名.dbo.表名--导入示例select*into表fromITSV.数据库名.dbo.表名--以后不再使用时删除链接服务器execsp_dropserver'ITSV','droplogins'--连接远程/局域网数据(openrowset/openquery/opendatasource)--1、openrowset--查询示例select*fromopenrowset('SQLO
5、LEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)--生成本地表select*into表fromopenrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)--把本地表导入远程表insertopenrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)select*from本地表--更新本地表updatebsetb.列A=a.列Afromopenrowset('SQLOLEDB','sql服务器
6、名';'用户名';'密码',数据库名.dbo.表名)asainnerjoin本地表bona.column1=b.column1--openquery用法需要创建一个连接--首先创建一个连接创建链接服务器execsp_addlinkedserver'ITSV','','SQLOLEDB','远程服务器名或ip地址'--查询select*FROMopenquery(ITSV,'SELECT*FROM数据库.dbo.表名')--把本地表导入远程表insertopenquery(ITSV,'SELECT*FROM数据库.dbo
7、.表名')select*from本地表--更新本地表updatebsetb.列B=a.列BFROMopenquery(ITSV,'SELECT*FROM数据库.dbo.表名')asainnerjoin本地表bona.列A=b.列A--3、opendatasource/openrowsetSELECT*FROMopendatasource('SQLOLEDB','DataSource=ip/ServerName;UserID=登陆名;Password=密码').test.dbo.roy_ta--把本地表导入远程表inse
8、rtopendatasource('SQLOLEDB','DataSource=ip/ServerName;UserID=登陆名;Password=密码').数据库.dbo.表名select*from本地表3、自己写的例子--openrowset使用OLEDB的一些例子select*fromopenrowset('SQLOLEDB