将远程SQL Server 数据库中表数据导入本地数据库相应的表
方法一
1.远程数据库注册到本地的方法:
exec sp_addlinkedserver '名称','','SQLOLEDB','远程数据库地址'
exec sp_addlinkedsrvlogin '名称','false','本地用户名称','远程用户名称','远程用户密码'
2.导入表
insert database.dbo.table
select * from 远程database.dbo.table
方法二
访问不同电脑上的数据库(远程访问,需要联网),如果经常访问或者数据流较大,建议用链接服务器的方法。
1.创建链接服务器
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或IP地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
exec sp_serveroption 'srv_lnk','rpc out','true' --这个允许调用链接服务器上的存储过程
go
2.使用示例
--查询示例 select * from srv_lnk.database.dbo.table
--导入示例 select * into table from srv_lnk.database.dbo.table
3.若不再使用时,删除链接服务器
exec sp_dropserver 'srv_lnk','droplogins'
方法三
如果只是临时访问,可以直接使用openrowset
--示例1
select * from openrowset('SQLOLEDB','sql服务器名';,'用户名';,'密码',database.dbo.table)
select * into 表 from openrowset('SQLOLEDB','sql服务器名';'用户名';'密码',database.dbo.表名)
--示例2(测试正常)
insert database.dbo.table
select * from
openrowset('MSDASQL',
'DRIVER={SQL Server};SERVER=远程服务器地址;UID=用户名;PWD=密码',表) AS a
相关问题
问:当导入的数据量很大,而网络突然中断,会不会出现问题?
答:中断的话,就等于什么也没做,也就是事务回滚,重新运行。