跨服务器导入数据SQL语句及其问题解决方案

时间:2024-01-10 17:10:08

--跨服务器导入数据SQL语句:

insert into [shsw_manager].[dbo].[Station_List]
select * from OPENROWSET('SQLOLEDB','SERVER=31.16.1.130;uid=sa;pwd=shswhotline;Database=shsw_manager','select * from Station_List')

--跨服务器查询示例 SELECT * FROM OPENROWSET('SQLOLEDB','192.168.0.7';'sa';damon king',DBName.dbo.TbName) 按F5执行,若未启用'Ad Hoc Distributed Queries'(专案分布式查询),则会提示如下信息:

SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。

此时,可以使用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 当执行完导入后,最好将'Ad Hoc Distributed Queries' 关闭:

EXEC SP_CONFIGURE 'show advanced options',0 RECONFIGURE EXEC SP_CONFIGURE 'Ad Hoc Distributed Queries',0 RECONFIGURE 此时完成了跨服务器导入数据任务!