jim*_*jim 31 sql sql-server triggers
我有一个使用asp.net成员资格模式的网站.我想在aspnet_users表上设置一个触发器,它将user_id和新行的user_name插入到另一个表中.
如何从最后一次插入中获取值?
我可以选择最后一个date_created,但这看起来很臭.有没有更好的办法?
KM.*_*KM. 59
试试这个sql server
CREATE TRIGGER yourNewTrigger ON yourSourcetable
FOR INSERT
AS
INSERT INTO yourDestinationTable
(col1, col2 , col3, user_id, user_name)
SELECT
'a' , default , null, user_id, user_name
FROM inserted
go
Run Code Online (Sandbox Code Playgroud)
Ode*_*ded 14
您使用插入触发器 - 在触发器内,插入的行项将作为逻辑表公开INSERTED
,该列具有与定义触发器的表相同的列布局.
删除触发器可以访问名为的类似逻辑表DELETED
.
更新触发器可以访问INSERTED
包含更新值的DELETED
表和包含要更新的值的表.
在SQL Server触发器中,您有两个名为inserted和deleted的psdeuotable.它们包含记录的旧值和新值.
因此,在触发器内(您可以轻松查找创建触发器部件),您可以执行以下操作:
Insert table2 (user_id, user_name)
select user_id, user_name from inserted i
left join table2 t on i.user_id = t.userid
where t.user_id is null
Run Code Online (Sandbox Code Playgroud)
在编写触发器时记住它们对整批信息执行一次,它们不会逐行处理.因此,在代码中考虑多行插入.
归档时间: |
|
查看次数: |
135508 次 |
最近记录: |