首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

执行远程访问数据库语句,在存储过程中如何写

2013-10-24 
执行远程访问数据库语句,在存储过程中怎么写?---启用Ad Hoc Distributed Queries exec sp_configure show

执行远程访问数据库语句,在存储过程中怎么写?

---启用Ad Hoc Distributed Queries
 exec sp_configure 'show advanced options',1
      reconfigure
      exec sp_configure 'Ad Hoc Distributed Queries',1
       reconfigure
---执行远程访问数据库语句
select * from OPENDATASOURCE('SQLOLEDB','data source=.;user id=sa;password=7788250').Fuyoo_SpotTransactionsWebCq.dbo.Auction   

---使用完成后,关闭Ad Hoc Distributed Queries
    exec sp_configure 'Ad Hoc Distributed Queries',0
      reconfigure
      exec sp_configure 'show advanced options',0
      reconfigure

 


为什么上面的不能一起执行,一起执行还是会出现 " 消息 15281,级别 16,状态 1,第 7 行
SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已......" 按顺序分三步执行才行..。 如果放到事务里是不是就可以了呢,应该怎么写? 事务 sql?server OPENDATASOURCE
[解决办法]
因为远程还没有执行完,设置就被改了,远程执行就被中断
[解决办法]
关闭的操作最好不要放在一起,说不定你有同时两个事务在使用这个脚本,一个完成了,另外一个正在执行,所以改不了,这种大动作修改,最好放在连接的时候处理
[解决办法]
引用:
因为远程还没有执行完,设置就被改了,远程执行就被中断


我一开始也执行报错,加了一个go,改成这样后,我试了试,就不报错了:


--第一次的语句
 exec sp_configure 'show advanced options',1
      reconfigure
      exec sp_configure 'Ad Hoc Distributed Queries',1
       reconfigure
go    --加了一个go


       
---第二次的语句,执行远程访问数据库语句
select * 
from OPENDATASOURCE('SQLOLEDB','data source=192.168.1.108;user id=sa;password=yupeigu').ggg.dbo.tb  



---第三次语句,使用完成后,关闭Ad Hoc Distributed Queries
    exec sp_configure 'Ad Hoc Distributed Queries',0
      reconfigure
      exec sp_configure 'show advanced options',0
      reconfigure


热点排行