各位大哥请进来
我想创建两个表,A表和B表是可以通过级联操作来互相更新的.列如一个注册表一个登陆表,如果注册表更新注册信息里的用户和密码时,登陆表的用户和密码也同时得到更新.求各位帮以sql语句来创建类似的例子.万分感谢 --------------------编程问答-------------------- 添加一个触发器当修改/新增/删除 注册表记录后 操作登陆表。--------------------编程问答-------------------- CREATE TRIGGER TABLEA_Update
ON TABLEA
AFTER UPDATE
AS
BEGIN
IF UPDATE(用户名)
begin
Update TABLEB
Set 用户名=Inserted.用户名
From TABLEB,Deleted,Inserted --Deleted和Inserted时系统临时表
Where TABLEB.用户名=Deleted.用户名
end
IF UPDATE(密码)
begin
Update TABLEB
Set 密码=Inserted.密码
From TABLEB,Deleted,Inserted
Where TABLEB.密码=Deleted.密码
end
SET NOCOUNT ON;
END
GO
--------------------编程问答-------------------- 上面2个Update后面还要加 and TABLEA.ID=TABLEB.ID(这个条件是关联你A B两表记录的字段) --------------------编程问答-------------------- 1.最好是使用事务,而不要使用触发器。
建立一个存储过程,在存储过程中使用事务,大致的sql如下:
create procedute UpdateAAndB
as
declare @errorCode int
select @errorCode=@@error
begin transaction
if @errorCode=0
begin
update 表A
set name=新用户名, password=新密码
where id=用户id
select @errorCode=@@error
end
if @errorCode=0
begin
update 表B
set name=新用户名, password=新密码
where id=用户id
select @errorCode=@@error
end
if @errorCode=0
commit transaction
else
rollback transaction
2.最佳解决办法是重构你的数据库设计:专门建立一张用户表用来存放用户名和密码,A表和B表引用这张用户表,这样用户名和密码更新的时候只要更新用户表就行了。
接分!
--------------------编程问答-------------------- 学习了 改天去看看事务 --------------------编程问答-------------------- 谢谢各位呵呵 --------------------编程问答-------------------- 用企业管理器,在创建表关系的时候选择级联删除,级联更新.OK --------------------编程问答-------------------- ......mark --------------------编程问答-------------------- 那你还不给分我 --------------------编程问答-------------------- 级联更新设置一下就好了 --------------------编程问答-------------------- 怎么给分给你们啊呵呵,我不懂耶 --------------------编程问答-------------------- 等等,我教你 --------------------编程问答-------------------- 点击“管理”
补充:.NET技术 , ASP.NET