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表中的反映