程序员,昨天有同事问我,如何跨服务器对数据库中的表数据进行更新?
简单的理解就是把另外一个服务器上的数据库中的表数据插入到本地服务器数据库中的某张表,在sqlserver数据库中,简单点的操作就是,通过写定时作业的方式来完成。
当然,第1步我们必须要在本地服务器的数据库中建立链接服务器
建立好链接服务器之后。
第2步,我们开始把另外一个服务器中的表数据insert到本地服务器的数据库中,
我们先在本地数据库中建好一张表,然后用INSERT INTO SELECT语句进行插入数据。
比如:
INSERT INTO Student (ID, NAME, TTIME, ...)
SELECT SID, SNAME, STIME
FROM 192.168.40.162.School.dbo.StuInfo
WHERE SID NOT IN (SELECT ID FROM Student WHERE TTIME>=DATEADD(DAY,-7,GETDATE()))
我们可以把上面的插入数据的sql封装成一个存储过程:
create proc proc_insertstudent
as
begin
INSERT INTO Student (ID, NAME, TTIME, ...)
SELECT SID, SNAME, STIME
FROM 192.168.40.162.School.dbo.StuInfo
WHERE SID NOT IN (SELECT ID FROM Student WHERE TTIME>=DATEADD(DAY,-7,GETDATE()))
end
第3步,我们在数据库中新建作业:
第4步,在步骤里写要做的操作,比如我这里写的是执行存储过程:
第5步,新建作业计划,比如我要在每天晚上11点28去做一次数据同步,就可以在这里设置具体时间:
到这里其实就可以了,后面的警告,通知,目标你可以自己去设置一下,不设置直接点确定
也行。
做完之后,这个数据库作业就会在每天晚上11点28去做执行存储过程proc_insertstudent的操作。
当然,我们如果是对数据库进行数据同步的话,最好是用发布订阅的方式进行。