INSERT OPENROWSET('SQLOLEDB', 'server=sql服务器名或IP地址;uid=用户名;pwd=密码',数据库名.架构名.表名)(列,列...)</p><p align="left">SELECT 列,列... FROM 本地表
/*例:
INSERT OPENROWSET('SQLOLEDB', 'server=YY;uid=sa;pwd=sa',Account.dbo.BaseSupplier)
([SCode]
,[ProName]
,[CityName])
SELECT [SCode]
,[ProName]
,[CityName]
FROM [HFMXSERVER03].[Materials1126].[dbo].[BaseSupplier]
*/
中途可能会出现报错
SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信
这是因为 默认情况下,SQL Server并不允许专案分布式查询使用OPENROWSET和OPENDATASOURCE
可以执行以下语句开启
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
数据复制结束后,在执行以下语句关闭
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure
以下转载博客园某位大神总结的 SQL不同服务器数据库之间的数据操作整理(完整版)