0
我有以下触发循环中触发的SQL Server
ALTER TRIGGER [dbo].[DeleteUserData]
ON [dbo].[site_users]
AFTER DELETE
AS
BEGIN
SET NOCOUNT ON;
--delete user uploads
update my_gallery set deleted=1 where un=(select un from deleted) and subdomain=(select subdomain from deleted)
--delete user pms
delete from pms where toUn=(select un from deleted) and subdomain=(select subdomain from deleted)
--delete friends
delete from friend_blocked_list where un=(select un from deleted) and subdomain=(select subdomain from deleted)
END
它工作正常,当我删除一个用户,但如果我在删除表中删除多个用户的子查询返回多个用户和触发失败。
我该如何调整它以便它在一次删除多个用户时起作用?
我想过改变它如下。这是正确的方式吗?
改变的
--delete user uploads
update my_gallery set deleted=1 where un in (select un from deleted) and subdomain in (select subdomain from deleted)
--delete user pms
delete from pms where toUn in (select un from deleted) and subdomain in (select subdomain from deleted)
--delete friends
delete from friend_blocked_list where un in (select un from deleted) and subdomain in (select subdomain from deleted)
可能有人会问,为什么你不外键添加到表,但使用者名称及其子域内唯一