[求助]数据库的插入,修改,删除问题(关系图方面的)
假如有两个 表,table1(ID,Name),table2(Name,...)怎么实现 我修改了table1里的Name table2里的Name也随之修改?只能用关系图吗?关系图好像只能实现修改这个功能,其他功能要怎么实现。
要用关系图的话 可以用SQL语言来写吗?
[此贴子已经被作者于2007-4-2 22:21:25编辑过]
[此贴子已经被作者于2007-4-2 22:21:25编辑过]
最好的方法就是用触发器!
在table1里的name列上创建update触发器!
也可以用SQL语句创建主外键约束.
还可以自己编写存储过程来实现修改table1中的name列后立即修改table2中的name列,不过记得要把这两个update语句放在同一个事务中去执行,要不就不能保证了!
可以使用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 的时候也会修改
老打一些错字。
可以直观的看出表之间的联系