请大家帮我看看一个删除的触发器(delete)
表结构是这样子的.
一个帐号表(tab_account):accountID
一个用户表(tab_user):userID
它们的关系是一对多,即一帐号对应多用户.
当删除用户时(可以成批删除用户),
判断此用户相关连的帐号在用户表中是否还有相对应的用户.
如果没有,则删除该帐号。
我是这样写的这个触发器:
CREATE TRIGGER tr_Del_User ON [dbo].[tab_user]
FOR DELETE
AS
DECLARE @IsDelAcct int;
DECLARE @del_value int
DECLARE del_cur CURSOR LOCAL FOR SELECT acctountID FROM deleted
OPEN del_cur
FETCH NEXT FROM del_cur INTO @del_value
WHILE @@fetch_status = 0
BEGIN
SELECT @IsDelAcct = COUNT(*) FROM tab_user WHERE accountID = @del_value
IF @IsDelAcct = 0
BEGIN
DELETE FROM tab_account WHERE accountID = @del_value
END
FETCH NEXT FROM del_cur INTO @del_value
END
CLOSE del_cur
DEALLOCATE del_cur
只是我一直有些疑惑,总觉得应该有更好的方法.
向大家请教.