有两个表A,B,如何用SQL语句,更新A表中的一个记录的字段,并将更新后的这条记录插入到B表

编辑删除回复有两个表A,B,如何用SQL语句,更新A表中的一个记录的字段,并将更新后的这条记录插入到B表欣梦27分钟前我是这么写的,编译后有错误,Stringsql="u... 编辑 删除 回复 有两个表A,B,如何用SQL语句,更新A表中的一个记录的字段,并将更新后的这条记录插入到B表欣梦 27分钟前 我是这么写的,编译后有错误, String sql="update A set STATE=1 where ID=? "+
" insert into B(ID,LNAME,ROLE,GROUP_ID,STATE) select ID, NAME,ROLE,GROUP_ID,STATE from A; 插入操作是不是原表的记录删除了呢,还有A和B的字段不太一样,怎么办哈?各位,帮帮忙的说~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
展开
 我来答
匿名用户
2013-08-05
展开全部
--随便搞搞,不想多写。环境为sql server 2000CREATE DATABASE TEST; CREATE TABLE A(
ID INT,
LNAME VARCHAR(20),
ROLE VARCHAR(20),
GROUP_ID INT ,
STATE VARCHAR(20)
); --复制A表结构到B
SELECT * INTO B FROM A WHERE 0=1;
CREATE TRIGGER COPY
ON A --在A表中创建触发器
FOR UPDATE --为更新事件触发
AS --事件触发后所要做的事情
IF UPDATE(STATE)

BEGIN
SET INSERT INTO B (ID,LNAME,ROLE,GROUP_ID,STATE)
SELECT I.ID,I.LNAME,I.ROLE,I.GROUP_ID,I.STATE
FROM INSERTED I --INSERTED临时表

END;--以下为测试数据
INSERT INTO A VALUES(3,'ZHU','ADMIN',1,'TERMINATAL');UPDATE A SET STATE = 'REUSE' WHERE A.ID = 3;SELECT * FROM B;
匿名用户
2013-08-05
展开全部
建议不要用触发器 在服务器接近满载的时候!触发比较频繁的时候 比较容易出现问题!建议用事务去处理!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-05
展开全部
写个事务或者写一个触发器 在添加A表时候 同时向B表插入一条新语句
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式