【发布时间】:2012-06-03 06:12:45
【问题描述】:
我有一个遗留字段,其中包含一个逗号分隔的用户 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) + '%,')
【问题讨论】:
标签: sql-server tsql triggers