我的存储过程中有以下定义。
DECLARE @DeletedRoleTag table( Role_key bigint, Tag_key bigint)
E.G。 @DeletedRoleTag
Role_key Tag_key
1 2
3 4
现在从我的sql表(RoleTag)我想删除与@DeletedRoleTag
匹配的行。
如果RoleTag表中存在Role_key = 1且Tag_key = 2或Role_key = 3且Tag_key = 4的行,则需要将其删除。 我该怎么做?
答案 0 :(得分:2)
我会使用exists
子句执行此操作:
delete from RoleTag rt
where exists (select 1
from @DeletedRoleTag drt
where drt.Role_key = rt.Role_key and
drt.Tag_key = rt.Tag_key
);
答案 1 :(得分:0)
尝试:
delete
from roleTag
from roleTag rt
inner join @DeletedRoleTag drt ON rt.role_key = drt.role_key
and rt.tag_key = drt.tag_key