公司项目改造,需要将以前的数据库表记录导入到新的数据库表中,结构不是完全相同。

在跨库的过程中,学到了不少东西。原来SQLServer 还有 链接服务器的功能呢。

/*不同服务器数据库之间的数据操作*/

--创建链接服务器

exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 '
exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码 '

--查询示例

select * from ITSV.数据库名.dbo.表名

--导入示例

select * into 表 from ITSV.数据库名.dbo.表名

--以后不再使用时删除链接服务器

exec sp_dropserver 'ITSV ', 'droplogins '

我的测试:

exec   sp_addlinkedserver     'srv_lnk ', ' ', 'SQLOLEDB ', '192.168.1.X1'
exec   sp_addlinkedsrvlogin   'srv_lnk ', 'false ',null, 'sa', 'sa'

 

insert into CounterDB.dbo.Sites(SiteKey,ParentID,Name)
select BarId,AreaCode,BarName from srv_lnk.TestCounter.dbo.Site

 

insert into CounterDB.dbo.CountData

(CameraKey,CountTime,InNum,OutNum,Refix,ExportFlag,ChangeFlag)

select top (200000) CameraNo,DateTime,Up,Down,Refix,0,0
from  srv_lnk.TestCounter.dbo.Counter_Table

exec sp_dropserver 'srv_lnk ', 'droplogins'