如何通过sql server 2008r2中的插入触发器关联两个表

发布于 2024-12-12 19:13:38 字数 253 浏览 0 评论 0原文

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

第一个表

第一个名称|姓氏 |用户 ID |密码 |地址 |电子邮件

和第二个登录表有两个字段

第二个表

userId |密码

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

I am trying to create a trigger such that if i am inserting some values in 1st table than the two field of the 2nd table automatically updated.
case is that i have a table in which i'm storing user details

First Table

1st name | last name | userId | password | adress | email

and 2nd login table which have two field

Second Table

userId | password

now i want if i change value of password in 1st table is automatically reflect in the 2nd table what is the query for that.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

囍孤女 2024-12-19 19:13:38

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

as long as the userid and password for the second table are mapped as foreign keys to the first table, i think you should be able to set "on update cascade" on the rows

染柒℉ 2024-12-19 19:13:38

你可以这样做......

   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,...)

you can do like this....

   CREATE TRIGGER trgTest ON Test
   FOR INSERT
   AS
  INSERT Test2
  (Id, value)
  SELECT Id, Value 
  FROM Inserted

or if you're using stored procedures you can easily manage this

  CREATE PROCEDURE sp_Insert
 @Value varchar(10)
 AS
 insert into table1 (...,...) values (@value,...)
 insert into table2 (...,...) values (@value,...)
故人的歌 2024-12-19 19:13:38

你基本上已经回答了你自己的问题,普拉卡什。查看有关触发器的 MSDN 文档对于您需要的特定语法。 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

You've mostly answered your own question, Prakash. Check out the MSDN documentation on triggers for the specific syntax you need. Jon's comment in regard to the duplication of data points out that your schema is somewhat denormalized so you may want to take a look at changing that unless it's required for your situation.

From 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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文