应用场景:A服务器数据库 导入数据到 B服务器数据库
两种方案:1.链接服务器 2.Import and Export Wizard (导入导出向导)
方案分析:
1.使用链接服务器的方式,较为灵活,创建好链接后,可以多次使用,需要导入的数据源也可以进行各种查询过滤操作。
2.向导的方式,也有两种导入方式的选择,一种是直接选择赋值选中表的所有数据;
另一种是写sql选择数据源,执行后将在目标库创建一张新表[Query]用来保存导入的数据,在执行sql将[Query]中的数据导入目标表中。
使用感受:
使用链接服务器的方式时,容易出现无法链接的问题,有可能是权限限制、远程访问限制等不能进行查询;
使用向导的方式,在界面中配置数据源库和目标库的链接信息,如服务器地址、UserId、Password等,如果是直接导入表中的全部数据,则比较方便,选择需要对应的表即可。如果是只导入表中的部分数据,比如需要条件限制则会稍微麻烦些,还要将[Query]在导入一次,再删除表[Query]。
链接服务器使用说明:
--查看当前链接情况:
select * from sys.servers;
--使用 sp_helpserver 来显示可用的服务器
Exec sp_helpserver
--删除已经存在的某个链接
Exec sp_droplinkedsrvlogin 服务器别名,Null
Exec sp_dropserver 服务器别名
--使用sp_addlinkedserver来增加链接
EXEC sp_addlinkedserver
@server='192.168.2.66',--被访问的服务器别名(习惯上直接使用目标服务器IP,或取个别名如:JOY)
@srvproduct='',
@provider='SQLOLEDB',
@datasrc='192.168.2.66' --要访问的服务器
--使用sp_addlinkedsrvlogin 来增加用户登录链接
EXEC sp_addlinkedsrvlogin
'192.168.2.66', --被访问的服务器别名(如果上面sp_addlinkedserver中使用别名JOY,则这里也是JOY)
'false',
NULL,
'sa', --帐号
'test123' --密码
使用举例(访问目标服务器上的数据库Music,查看其中表test的内容):
如果建立链接时的别名是目标服务器IP,即192.168.2.66
则:
select * from [192.168.2.66].[Music].dbo.test