Asp.net sql server 2008r2中如何通过插入后触发器关联两个表

Asp.net sql server 2008r2中如何通过插入后触发器关联两个表,asp.net,sql-server-2008,triggers,Asp.net,Sql Server 2008,Triggers,我试图创建一个触发器,如果我在第一个表中插入一些值,那么第二个表的两个字段就会自动更新。 情况是,我有一个存储用户详细信息的表 第一桌 first name | last name | userId | password | address | email 第二个登录表有两个字段 第二桌 userId|密码 现在我想,如果我更改第一个表中密码的值,那么它会自动反映在第二个表中,查询的内容是什么。只要第二个表的用户ID和密码作为外键映射到第一个表,我想您应该能够在行上设置“更新级联”您基本上回答了

我试图创建一个触发器,如果我在第一个表中插入一些值,那么第二个表的两个字段就会自动更新。 情况是,我有一个存储用户详细信息的表

第一桌

first name | last name | userId | password | address | email

第二个登录表有两个字段

第二桌

userId|密码


现在我想,如果我更改第一个表中密码的值,那么它会自动反映在第二个表中,查询的内容是什么。

只要第二个表的用户ID和密码作为外键映射到第一个表,我想您应该能够在行上设置“更新级联”

您基本上回答了自己的问题,普拉卡什。请查看以获取所需的特定语法。Jon关于数据复制的评论指出,您的模式有些非规范化,因此您可能需要考虑更改它,除非您的情况需要它

来自MSDN

   INSERT INTO auditEmployeeData
     (audit_log_type,
     audit_emp_id,
     audit_emp_bankAccountNumber,
     audit_emp_salary,
     audit_emp_SSN)
     SELECT 'NEW',
        ins.emp_id,
        ins.emp_bankAccountNumber,
        ins.emp_salary,
        ins.emp_SSN
     FROM inserted ins

你可以这样做

   CREATE TRIGGER trgTest ON Test
   FOR INSERT
   AS
  INSERT Test2
  (Id, value)
  SELECT Id, Value 
  FROM Inserted
或者,如果您使用的是存储过程,则可以轻松地管理它

  CREATE PROCEDURE sp_Insert
 @Value varchar(10)
 AS
 insert into table1 (...,...) values (@value,...)
 insert into table2 (...,...) values (@value,...)

第一个表中有数据。为什么要复制它?如果你真的不需要使用触发器,我可能会采用这种方法。我不知道哪种方法更好有一个明确的答案,但这肯定看起来更干净。我发现在插入dbo.UDetail后,在dbo.UDetail上创建触发器xyz作为插入dbo.login(用户名,密码,角色)值(new.UserId,new.Pwd,'user');但我不知道为什么要使用这个新的,我得到了一个错误:MSSQL的多部分标识符new.userId和new.pwd没有找到,应该“插入”而不是“新建”。我认为您发现的示例可能是新插入的别名。用一个例子编辑了这篇文章。我还想知道,当我们更新你的测试表时,我想要的是同一个过程,而不是它在Test2表中的反映