在SQL Server20008调用别的SQL数据库远程操作中,
在使用openrowset/opendatasource前首先要启用Ad Hoc Distributed Queries服务,因为这个服务不安全所以SqlServer默认是关闭的。
--不用选择数据库
1、启用Ad Hoc Distributed Queries的方法
SQL Server 阻止了对组件'Ad Hoc Distributed Queries' 的STATEMENT'OpenRowset/OpenDatasource'的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用。sp_configure 启用 'Ad Hoc Distributed Queries'。
启用Ad Hoc Distributed Queries的方法,执行下面的查询语句就可以了:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
使用完毕后,记得一定要关闭它,因为这是一个安全隐患,切记执行下面的SQL语句:
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure
============================================================================================================================================================
作用:将138服务器上的数据库移到本地
方法①:
在本地的SQL里执行如下。即可
注意:如下语句执行不了。是因为。SQL外围功能没开启远程连接。在SQL功能外围了设置即可。
---建议版本,以下无法使用
--如果只是临时访问,可以直接用openrowset
--查询示例
select * from openrowset('SQLOLEDB','服务器地址';'sa';'SA密码',数据库名.dbo.表名)
例如:
select * into hbfsv8..类别 from openrowset('SQLOLEDB','POS-SERVER2';'sa';'',hbfsv8.dbo.类别)
执行成功后。即可在本地写语句导数据
方法②:
您好:以下方法,有个别的SQL版本无法使用例如简易版本,可使用如下方法查询(需要SQL能正常访问的情况下使用,可以使用SQL查询分析器连接测试)
--第一步:开启创建链接服务器 (执行一次即可)
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','POS-SERVER2'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'sa',''
go
--如下可以写语句来查询
--查询分店的库存数据
select * from srv_lnk.isszmv7_branch.dbo.t_im_branch_stock where item_no='00001' --3
--将分店的库存数据导入到本地的服务器来
select * into isszmv7..fdkc from srv_lnk.isszmv7_branch.dbo.t_im_branch_stock --2869
--将分店的库存和总部的库存对比
select a.item_no as 货号,a.stock_qty as 库存数量 from isszmv7..t_im_branch_stock a, fdkc b
where a.item_no=b.item_no and a.stock_qty<>b.stock_qty
go
--注意:以后不再使用时删除链接服务器
exec sp_dropserver 'srv_lnk','droplogins'
go
---建议版本,以下无法使用
--如果只是临时访问,可以直接用openrowset
--查询示例
select * from openrowset('SQLOLEDB'
,'POS-SERVER2';'用户名';'密码'
,数据库名.dbo.表名)
例如:
select * into hbfsv8..sps2 from openrowset('SQLOLEDB','128.0.14.06\XYT';'sa';'',hbfsv8.dbo.sps2)
select * into hbfsv8..spd1 from openrowset('SQLOLEDB','128.0.14.06\XYT';'sa';'',hbfsv8.dbo.spd1)
select * into hbfsv8..类别 from openrowset('SQLOLEDB','128.0.14.06\XYT';'sa';'',hbfsv8.dbo.类别)
在使用openrowset/opendatasource前首先要启用Ad Hoc Distributed Queries服务,因为这个服务不安全所以SqlServer默认是关闭的。
--不用选择数据库
1、启用Ad Hoc Distributed Queries的方法
SQL Server 阻止了对组件'Ad Hoc Distributed Queries' 的STATEMENT'OpenRowset/OpenDatasource'的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用。sp_configure 启用 'Ad Hoc Distributed Queries'。
启用Ad Hoc Distributed Queries的方法,执行下面的查询语句就可以了:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
使用完毕后,记得一定要关闭它,因为这是一个安全隐患,切记执行下面的SQL语句:
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure
============================================================================================================================================================
作用:将138服务器上的数据库移到本地
方法①:
在本地的SQL里执行如下。即可
注意:如下语句执行不了。是因为。SQL外围功能没开启远程连接。在SQL功能外围了设置即可。
---建议版本,以下无法使用
--如果只是临时访问,可以直接用openrowset
--查询示例
select * from openrowset('SQLOLEDB','服务器地址';'sa';'SA密码',数据库名.dbo.表名)
例如:
select * into hbfsv8..类别 from openrowset('SQLOLEDB','POS-SERVER2';'sa';'',hbfsv8.dbo.类别)
执行成功后。即可在本地写语句导数据
方法②:
您好:以下方法,有个别的SQL版本无法使用例如简易版本,可使用如下方法查询(需要SQL能正常访问的情况下使用,可以使用SQL查询分析器连接测试)
--第一步:开启创建链接服务器 (执行一次即可)
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','POS-SERVER2'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'sa',''
go
--如下可以写语句来查询
--查询分店的库存数据
select * from srv_lnk.isszmv7_branch.dbo.t_im_branch_stock where item_no='00001' --3
--将分店的库存数据导入到本地的服务器来
select * into isszmv7..fdkc from srv_lnk.isszmv7_branch.dbo.t_im_branch_stock --2869
--将分店的库存和总部的库存对比
select a.item_no as 货号,a.stock_qty as 库存数量 from isszmv7..t_im_branch_stock a, fdkc b
where a.item_no=b.item_no and a.stock_qty<>b.stock_qty
go
--注意:以后不再使用时删除链接服务器
exec sp_dropserver 'srv_lnk','droplogins'
go
---建议版本,以下无法使用
--如果只是临时访问,可以直接用openrowset
--查询示例
select * from openrowset('SQLOLEDB'
,'POS-SERVER2';'用户名';'密码'
,数据库名.dbo.表名)
例如:
select * into hbfsv8..sps2 from openrowset('SQLOLEDB','128.0.14.06\XYT';'sa';'',hbfsv8.dbo.sps2)
select * into hbfsv8..spd1 from openrowset('SQLOLEDB','128.0.14.06\XYT';'sa';'',hbfsv8.dbo.spd1)
select * into hbfsv8..类别 from openrowset('SQLOLEDB','128.0.14.06\XYT';'sa';'',hbfsv8.dbo.类别)