我有一个遗留字段,其中包含一个逗号分隔的用户 ID 列表,我将在某个时候替换它,但现在我只需要维护它,我已经设置了一个触发器,所以当用户被添加到一个组时它坚持它进入列表没问题,但是当用户被删除时,我需要一个触发器将其从列表中删除。我使用了这段代码,当你一次只删除一个成员时它工作得很好,但是我需要让它一次用于多次删除,我通常加入到已删除的表并繁荣,我不在但在这个例如它不会工作。
你能告诉我从触发器上的多个逗号分隔的字符串中删除多个用户 ID 的最佳方法吗?
这是当前的触发器。
DECLARE @MemberID int
SELECT @MemberID = MemberID FROM Deleted
UPDATE MemberGroups SET MembersList = SUBSTRING(
REVERSE (SUBSTRING (REVERSE (REPLACE(',' + mgs.MembersList + ',', ',' + CAST(@MemberID AS varchar) + ',', ',') ) , 2, 8000) ), 2, 8000)
FROM MemberGroups mgs
WHERE ',' + mgs.MembersList + ',' LIKE (',%' + CAST(@MemberID AS Varchar) + '%,')