公司項目改造,需要將以前的資料庫表記錄匯入到新的資料庫表中,結構不是完全相同。
在跨庫的過程中,學到了不少東西。原來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'