我的源服务器为ABC,目标服务器为XYZ
我需要将某些表从ABC复制到XYZ,但我不需要所有记录,我只需要一天的数据,并且每天需要刷新?
有人可以建议如何做吗?
如果两个数据库为on same server
,则可以按照以下步骤操作:
truncate XXXTable; --clear XXXTable
insert into XXXTable select * from XYZ..XXXTable; --copy
如果您的两个数据库为not on same server
,则可以执行以下步骤:
dblink
。EXEC master.dbo.sp_addlinkedserver @server = N'Server ', @srvproduct=N'SQL Server' ;
GO
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'dblinkName',@useself=N'False',@locallogin=NULL,@rmtuser=N'sa',@rmtpassword='########';
GO
truncate XXXTable; --clear XXXTable
insert into XXXTable select * from [dblinkname].XYZ..XXXTable; --copy
如何只复制一天的数据
您必须添加一个createtime列,并使用sysdate -1 day
来过滤一天的数据,例如:
CREATE TABLE T1 ([val] int, [createDate] datetime) ; INSERT INTO T1 ([val], [createDate]) VALUES (1, '2019-11-03 00:00:00'), (2, '2019-11-03 00:00:00'), (3, '2019-11-02 00:00:00'), (4, '2019-11-02 00:00:00'), (5, '2019-11-01 00:00:00') ; GO
5行受影响
CREATE TABLE T2 ([val] int, [createDate] datetime) ; GO
select Convert(date, dateadd(day,-1,getdate())) GO
| (无列名)|| :------------------ || 02/11/2019 00:00:00 |
insert into T2 select * from T1 where createDate = Convert(date, dateadd(day,-1,getdate())) GO
select * from T2 GO
val | createDate-:| :------------------3 | 02/11/2019 00:00:004 | 02/11/2019 00:00:00
db <>小提琴here