我需要创建一个存储过程,它接受一个 userId 和一个categoryIds 列表,并且 从特定表中删除任何匹配的行。
伪代码:
@categorylist int[]
@userId int
foreach(category as c in @categorylist)
{
DELETE FROM HelpWith as h
WHERE c.categoryId = h.categoryId
AND h.userId = @userId
}
现在我知道你不应该在 SQL 中使用循环(无论如何这都不会起作用......) 有谁知道如何制作一个可以做到这一点的存储过程?
最佳答案
从@Categorylist中创建一个表变量
@Categorylist table (ID int)
DELETE FROM HelpWith
WHERE categoryId IN (SELECT ID FROM @Categorylist)
AND userId = @userId
关于SQL存储过程-删除与输入列表匹配的每一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16604254/