[英]Update Trigger after an Insert in SQL Server c#
Here's the scenario I've been stuck on: 这是我一直坚持的情景:
Userid is passed from a string username in c# application. Userid从c#application中的字符串用户名传递。
bookcollection bookc_id, bookc_bookid, bookc_bookuser
books bookid, title, author, year
users userid, username, password
bookid is foreign key to bookc_bookid bookid是bookc_bookid的外键
userid is a foreign key to bookc_bookuser userid是bookc_bookuser的外键
This is how it gets inserted into books table 这是它如何插入书籍表
INSERT INTO books (title, author, year) VALUES (@title, @author, @year);
In a previous form I have used INNER JOIN clause to retrieve information from books collection based on the logged in Username string. 在以前的表单中,我使用INNER JOIN子句根据登录的用户名字符串从books集合中检索信息。
SELECT * FROM bookcollection c
INNER JOIN users r ON c.bookC_userid = r.userid
INNER JOIN books b ON c.bookC_bookID = b.bookid
WHERE username LIKE '" + Username + "'"
How could I create a trigger which would update the books
table with the userid and bookid. 我怎么能创建一个触发器,用于使用userid和bookid更新books
表。
Simple you can create a update Trigger Like this 很简单,您可以创建更新触发器像这样
CREATE TRIGGER yourtriggername
ON yourtablename
AFTER INSERT
AS
BEGIN
/* here goes your update statement*/
UPDATE c
SET c.bookC_userid = r.userid,
b.bookC_bookID= b.bookid
FROM bookcollection c
INNER JOIN users r ON c.bookC_userid = r.userid
INNER JOIN books b ON c.bookC_bookID = b.bookid
Where b.bookid = SCOPE_IDENTITY();
end
Edit: You can get newly inserted id of yourtable by Scope_Identity
function 编辑:您可以通过Scope_Identity
函数获取新插入的yourtable id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.