MSSQL自动合并数据库

时间:2015-06-03 18:49:25

标签: sql sql-server sql-server-2012

我有一台拥有MSSQL数据库的PC,每秒都会填充800个变量。我需要该数据库至少每10分钟合并/备份到另一台服务器PC上的第二个数据库。此外,第一个数据库需要每周擦除一次,以节省本地驱动器空间,以便在任何给定时间只有1周的数据存储在第一个数据库上;同时,第二个数据库保持一切完整,永远不会被清除,只是每10分钟发生一次合并。

据我所知,这意味着我不能依赖数据库镜像,因为第一个将每周擦除。所以从我收集的内容来看,这意味着我必须每10分钟进行一次预定的合并。

我很乐意承认我对SQL几乎一无所知。所以我的两个问题是:

  1. 如何在10分钟的频率内设置从一个数据库到另一个数据库的预定合并?
  2. 如何设置要安排/编写脚本的数据库,以便每周清除一次?
  3. (注意:两个数据库都在 MS SQL Server 2012 Standard 上运行。)

2 个答案:

答案 0 :(得分:0)

假设您可以在服务器A上创建连接到服务器B的链接服务器(Here's a guide

然后在桌面上创建一个触发器,例如table1:

CREATE TRIGGER trigger1
ON table1
AFTER INSERT
AS
    INSERT INTO ServerB.databaseB.dbo.table1
    select *
    from inserted

更多关于触发器here

对于第2部分,您可以安排作业在您希望的任何计划中截断表。 How to create a scheduled job
触发器仅在插入时触发,因此删除行不会对服务器B上的表执行任何操作。

答案 1 :(得分:0)

如何通过存储过程清除/删除数据?如果是这样,您还可以尝试事务复制,并复制该特定存储过程的执行,但在订阅服务器上伪造proc,因此当在订阅服务器上复制并执行proc时,不会删除/清除任何内容。