[转]SQLServer跨服务器访问数据库(openrowset/opendatasource/openquery)

正 文​:

1、启用Ad Hoc Distributed Queries

在使用openrowset/opendatasource前搜先要启用Ad Hoc Distributed Queries服务,因为这个服务不安全所以SqlServer默认是关闭的

启用Ad Hoc Distributed Queries的方法

SQL Server 阻止了对组件 'Ad Hoc Distributsql数据库ed Queries' 的 STATEMENT'OpenRowset/OpenDatasource'

访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可数据库设计以通过盛气凌人的意思使用

sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的数据库详细

信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。

启用Ad Hoc Distributed Queries的方法,执行下面的查询语句就可以了:

exec sp_confiSQLgure 'show advanced options',1

reconfigure

exec sp_configure 'Ad Hoc Distributed Queries',1

reconfi数据库是什么gure

使用完毕后,记得孙侨潞一定要要关闭它,因为这是一个安全隐患,切记执行下面的SQL语句

exec sp_configure 'Adsqlserver数据库 Hoc Distributed Queries',0

reconfigure

exsqlserver修改字段长度ec sp_configure 'show advanced options',0

reconfigure

2、使用示例

--创建链接服务器

ex数据库系统ecsp_addlinkedserver'ITSV','','SQLOLEDB','远程服务器名或ip地址'

execsp_addlinkedsrvlogin'ITSV','false',null,'用户名','密码'

--查询示例

select*fromITSV.数据库数据库系统概论第五版课后答案名.dbo舍曲林.表名

--导入示例

select*into表fromITS数据库是什么V.数据库名.dbo.表名

--以后不再使用时删除链接服务器

execspsqlserver2008安装步骤教程_dropserver'ITSV','droplogins'

--连接远程/局域网数据(openrowset/openquery/sqlserver是什么软件opendatasource数据库)

--1、openrowset

--查询示例

select*fromopenrowset('SQLO表名怎么设置LEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)

--生成本地表

select*into表fsqlserver端口号romopenrowset('SQLOLEDsqlserver2008安装步骤教程B','sql服务器名';'用户名';'密码',数据库名.dbo.表名)

--把本地表导入远程

insertopenrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)

select*f数据库rom本地表

--更新本地表

updateb

setb.列A=a.列A

fromopenrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.数据库表名)asainnerjoin本表名牌地表b

ona.column1=b.colum数据库查询语句n1

--openquerySQL+Server用法需要创建一个连接

--首先创建一个连接创建链接数据库原理及应用服务器

execsp_addlinkedserver'ITSV','','SQLOLEDB','远程SQL+Server服务器名或ip地址'

--查询

select*

FROMopenquery(ITSV,'苏卿陆容渊Select*FROM数据库.dbo.表名')

--把本地表导入远程表

insertopenquery(ITSV,'Select*FROM数sqlserver修改字段长度据库.dbsqlserver端口号o.表名')

select*from本地表

--更新舍曲林本地表

updateb

setb.列B=a.列B

FROMopenquery(表名在上方还是下方ITSV,'Select*FROM数据库.dbo.表名')asa

innerjoin本地表bona.列A=b.列A

--3、opendatasource/openrowset

Select*

FROMopendatasource('SQL数据库原理及应用OLEDB','DataSource=ip/ServerNa数据库是什么me;UserID=登陆名;Password=密码').test.dbo.roy_ta

--把本地表导入远程表

insertopendatasource('SQLOLEDB','DataSource=ip/ServerName;UserID=登陆名;Password=密码').数据库.dbo.表舍曲林

select*from表名牌本地表