sql server 2008 关于表之间的关系的问题,大哥大姐们,非常急啊!!!求助!!

我现在有两张表分别为A、B,A(id(主键),name,address)B(idA(主键),idB,name,address),我怎么设置(请用可视化的方法,不要用代码语... 我现在有两张表分别为A、B,A(id(主键),name,address) B(idA(主键),idB,name,address),我怎么设置(请用可视化的方法,不要用代码语句,看不怎么懂),才能使得当我A里面id,name,address与B里面的idB,name,address保持一致,当我修改了A中 id为10的一条数据,B里idB也为10的那条数据,他的name,address自动改变!! 展开
 我来答
hzaccp
2012-12-25
知道答主
回答量:29
采纳率:100%
帮助的人:13.1万
展开全部
只能创建 "触发器" 咯,写两句代码挺简单的。呵呵。

CREATE TRIGGER <Trigger_Name>
ON <Table_Name>
AFTER INSERT
AS
BEGIN
-- Insert statements for trigger here
END
GO
追问
大神,可以解释一下这个么,看不怎么懂啊!!另外大神,学delphi比较好的书有么,希望有代码讲解的,我借的书,代码都不怎么讲,直接附上去的,想实现一个功能都得百度半天
追答

CREATE TRIGGER tri_A_to_B --创建一个名为"tri_A_to_B"的触发器 

ON A --在A表中

AFTER UPDATE --在A表的"update"操作后触发

AS

BEGIN--开始 


 

--定义3个变量

declare @aid int, @aname varchar(50),@aaddress varchar(50)

 

--将这三个变量赋值 

select @aid=id,@aname=[name],@aaddress=address from inserted

--另外:inserted是虚拟表.在UPDATE操作时,会先删除记录,再添加新记录,所以会有两张虚拟表:deleted和inserted

 

--开始更新B表 

update B set [name]=@aname,[address]=@aaddress

where idA=@aid 


 

END--结束

GO

 

 

--另外,下面是删除触发器,如需删除,则执行下面语句即可 

--drop trigger tri_A_to_B

 

 

来自:求助得到的回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式