sql两表更新问题
数据库有两个表A,B,B表由A复制过去的,但列名不相同,而且A表实时更新,(ID会增长)也就是前一部分都相同;现在想让B表A表ID的增长而添加数据,B表labID已经改为...
数据库有两个表A, B, B表由A复制过去的,但列名不相同,而且A表实时更新,(ID会增长)也就是前一部分都相同;现在想让B表A表ID的增长而添加数据,B表labID已经改为非标识
A表
ID a b c d e time
1 a b c d e 2003.1.2
2....
B表
labID a1 b1 c1 d1 e1 datetime
1 a b c d e 2003.1.2
假设现在B里只有1一行数据,现在需要把新增ID的数据从A 添加到B表中,不能用删除,插入B,也不用管B表现有的数据是否已经修改,只看ID就行,A表ID增加,就把A表增加的所有数据 添加到B表(含ID)
可以先不做实时更新,当然 如果能定时更新最好
上面的语句我已经会了,后面自动执行,触发不合适,需要从远程服务器主动提取数据存到本地服务器,本地服务器再执行上面的操作,基本语句知道,但是怎么 自动执行? 作业?求详细
自动执行语句怎么弄?想每1小时自动执行一些sql 语句 展开
A表
ID a b c d e time
1 a b c d e 2003.1.2
2....
B表
labID a1 b1 c1 d1 e1 datetime
1 a b c d e 2003.1.2
假设现在B里只有1一行数据,现在需要把新增ID的数据从A 添加到B表中,不能用删除,插入B,也不用管B表现有的数据是否已经修改,只看ID就行,A表ID增加,就把A表增加的所有数据 添加到B表(含ID)
可以先不做实时更新,当然 如果能定时更新最好
上面的语句我已经会了,后面自动执行,触发不合适,需要从远程服务器主动提取数据存到本地服务器,本地服务器再执行上面的操作,基本语句知道,但是怎么 自动执行? 作业?求详细
自动执行语句怎么弄?想每1小时自动执行一些sql 语句 展开
2个回答
展开全部
INSERT INTO B(labID,a1, b1, c1, d1, e1, [datetime])
SELECT A.ID,A.a ,A.b, A.c, A.d, A.e, A.[time]
FROM A
WHERE A.ID NOT IN (SELECT B.labID FROM B)
--解释:
--第1行:插入B表中(字段名)
--第2行:从A表中选出与B表相对应的字段
--第3行:插入B表中的数据来源是A表
--第4行:选出A表中A的ID不在B表中B的labID中的记录
--已经测试运行正常,如有疑问请追问
更多追问追答
追问
如果A在远程服务器上,本地服务器已经建立了远程连接C,A 的数据库名为lims, 这个语句还能否使用
追答
--你说的是跨服务器了?这个我还真没写过
--以下是触发器,只要A表ID新增或修改,就会触发
CREATE Trigger AtoB --创建触发器 名称:AtoB
ON A --在A表中创建触发器
FOR UPDATE,INSERT --什么时候事件触发,在这里就是UPDATE和INSERT的时候会执行这个触发器
AS --触发器触发后所要执行的语句
IF Update(ID)
BEGIN
INSERT INTO B(labID,a1, b1, c1, d1, e1, [datetime])
SELECT A.ID,A.a ,A.b, A.c, A.d, A.e, A.[time]
FROM A
WHERE A.ID NOT IN (SELECT B.labID FROM B)
END
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询