当前位置:编程学习 > C#/ASP.NET >>

各位大哥请进来

我想创建两个表,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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,