服务器中一个数据库DB,其中表A有几个地方要写入的,程序设定在网络不通的时候也可以用本机的数据库运行,在网络通达后,再将本机的数据写回到服务器中,经研究,增量备份有以下几种可能性:
1. 两个表均在同一个数据库中:
INSERT INTO dbo.目标表名
SELECT * FROM 源表名 t1
WHERE t1.主键列名 NOT IN (SELECT 主键列名 FROM 目标表名)
2. 两个表在同一个服务器中,也容易,在表名前加上数据库名就好了:
INSERT INTO 目标数据库名.dbo.目标表名
SELECT * FROM 源数据库名.dbo.源表名 t1
WHERE t1.主键列名 NOT IN (SELECT 主键列名 FROM 目标数据库名.dbo.目标表名)
3. 两个表在不同的服务器中,命令基本相似,只要在数据库名前面再加上服务器名就好了,但在此之前,要先在源服务器中建立对目标服务器的链接,先是命令:
INSERT INTO 目标服务器名.目标数据库名.dbo.目标表名
SELECT * FROM 源服务器名.源数据库名.dbo.源表名 t1
WHERE t1.主键列名 NOT IN (SELECT 主键列名 FROM 目标服务器名.目标数据库名.dbo.目标表名)
建立链接的方法如下:
3.1 运行ssms;
3.2 在下图的链接服务器上点击右键:
3.3 选择“新建链接服务器”:
3.4 常规页是这样的,在“链接服务器”那里填入要链接的服务器的名称,类型选择SQL SERVER:
3.5 “安全性”页中,简单一点,选中“使用此安全上下文建立连接”,再填入用户名及密码,最后选择确定就好了:
增加成功: