执行远程访问数据库语句,在存储过程中如何写
执行远程访问数据库语句,在存储过程中怎么写?
为什么上面的不能一起执行,一起执行还是会出现 " 消息 15281,级别 16,状态 1,第 7 行
SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已......" 按顺序分三步执行才行..。 如果放到事务里是不是就可以了呢,应该怎么写?
------解决方案--------------------
因为远程还没有执行完,设置就被改了,远程执行就被中断
------解决方案--------------------
关闭的操作最好不要放在一起,说不定你有同时两个事务在使用这个脚本,一个完成了,另外一个正在执行,所以改不了,这种大动作修改,最好放在连接的时候处理
------解决方案--------------------
我一开始也执行报错,加了一个go,改成这样后,我试了试,就不报错了:
---启用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