SQL2000里两个表之间的操作

同一个数据库里,A表中当字段data的值大于100时,B表里执行一条update语句,如何实现?谢谢一楼,我再多问一句,这个触发器能在A表更新时自动执行吗,还有,能把代码... 同一个数据库里,A表中当字段data的值大于100时,B表里执行一条update语句,如何实现?
谢谢一楼,我再多问一句,这个触发器能在A表更新时自动执行吗,还有,能把代码简单地解释一下吗。悬赏+20
展开
 我来答
roy_88
2010-11-25 · TA获得超过3696个赞
知道大有可为答主
回答量:2914
采纳率:100%
帮助的人:2714万
展开全部
问题补充:

谢谢一楼,我再多问一句,这个触发器能在A表更新时自动执行吗,还有,能把代码简单地解释一下吗。悬赏+20

-----------是自动执行的
以下举一个完整的例子

USE tempdb
GO
CREATE TABLE A(ID INT PRIMARY KEY,DATA INT)
INSERT A SELECT 1,10
UNION ALL SELECT 2,20

CREATE TABLE B(A_ID INT FOREIGN KEY REFERENCES A(ID),DATA INT)
INSERT B SELECT 1,100
UNION ALL SELECT 2,100
go

create trigger tr_A on A
for update,insert
as
update b
set DATA=i.Data
from inserted i ,B
where i.ID=B.A_ID and i.Data>100
go
--更新A表,Data<=100时,不更新B表
UPDATE A SET DATA=99 WHERE ID=1

SELECT * FROM B WHERE A_ID=1
/*
A_ID DATA
1 100
*/

--更新A表,Data>100时,更新B表

UPDATE A SET DATA=101 WHERE ID=1

SELECT * FROM B WHERE A_ID=1
/*
A_ID DATA
1 101
*/
--DROP TABLE B,A
百度网友d10a568c9
2010-11-24 · TA获得超过226个赞
知道小有建树答主
回答量:206
采纳率:0%
帮助的人:171万
展开全部
update B set B.name='xxx' where A.date>100; 这样可以吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b9a16c4
2010-11-24 · TA获得超过579个赞
知道答主
回答量:208
采纳率:0%
帮助的人:73.1万
展开全部
一楼正解。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式