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自动改变!!
展开
1个回答
展开全部
只能创建 "触发器" 咯,写两句代码挺简单的。呵呵。
CREATE TRIGGER <Trigger_Name>
ON <Table_Name>
AFTER INSERT
AS
BEGIN
-- Insert statements for trigger here
END
GO
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
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询