注册 登录
编程论坛 SQL Server论坛

[求助]数据库的插入,修改,删除问题(关系图方面的)

felix20372 发布于 2007-04-02 22:15, 1246 次点击
假如有两个 表,table1(ID,Name),table2(Name,...)
怎么实现 我修改了table1里的Name table2里的Name也随之修改?只能用关系图吗?关系图好像只能实现修改这个功能,其他功能要怎么实现。
要用关系图的话 可以用SQL语言来写吗?

[此贴子已经被作者于2007-4-2 22:21:25编辑过]

10 回复
#2
xiyou4192007-04-02 22:26

最好的方法就是用触发器!
在table1里的name列上创建update触发器!
也可以用SQL语句创建主外键约束.
还可以自己编写存储过程来实现修改table1中的name列后立即修改table2中的name列,不过记得要把这两个update语句放在同一个事务中去执行,要不就不能保证了!

#3
棉花糖ONE2007-04-03 12:09
啥叫关系图我没用过,触发器可以在专门的列上定义 ,具体去看看if update的帮助.
#4
felix203722007-04-03 21:16
兄弟可以给段 建立触发器 的SQL语句吗 要一段代码,谢谢!~~~~
#5
棉花糖ONE2007-04-03 21:22

可以使用IF UPDATE语句定义一个监视指定列的数据更新的触发器。这样,就可以让触发器容易的隔离出特定列的活动。当它检测到指定列已经更新时,触发器就会进一步执行适当的动作,例如发出错误信息指出该列不能更新,或者根据新的更新的列值执行一系列的动作语句。
语法
IF UPDATE (<column_name>)
例1
本例阻止用户修改Employees表中的EmployeeID列。
USE Northwind
GO
CREATE TRIGGER Employee_Update
ON Employees
FOR UPDATE
AS
IF UPDATE (EmployeeID)
BEGIN
RAISERROR ('Transaction cannot be processed.\
***** Employee ID number cannot be modified.', 10, 1)
ROLLBACK TRANSACTION
END

注意:insert 的时候也会修改

#6
felix203722007-04-04 19:15

虽然不太懂 还是谢谢了

#7
徐强2007-04-05 08:17
花花,用视图
科技直观的看出各个表之间关系的(主外键)
#8
徐强2007-04-05 08:17
错。是关系图
#9
徐强2007-04-05 08:18

老打一些错字。
可以直观的看出表之间的联系

#10
jiushiwo2007-04-10 22:30
版主好强啊
#11
Kendy1234562007-04-11 09:15
以下是引用棉花糖ONE在2007-4-3 12:09:33的发言:
啥叫关系图我没用过,触发器可以在专门的列上定义 ,具体去看看if update的帮助.

指的好像是diagram

1