我有一个带有GroupUserTVP表值参数的存储过程:
select C.Persona,C.Producto,
Sum(C.Cantidad*P.Precio) [Total_Purchase],
MAX (C.Cantidad*P.Precio) [Total_Purchase
from
Compras C JOIN Precios P ON C.Producto=P.Item
group by C.Producto ,C.Persona
我有一个CREATE TYPE [dbo].[GroupUserTVP] AS TABLE
(
[GroupId] [uniqueidentifier] NULL,
[UserId] [uniqueidentifier] NULL
)
表,其结构如下:
GroupUser
TVP将包含GroupId和UserId的集合。如果GroupUser表中的组用户不在TVP中,则应删除这些组用户。
有没有办法根据连接执行某种类型的动态删除语句来完成此操作?我可以把它分成几部分并使用表变量等,但是想知道这里的SQL专家是否可以在一个语句或两个语句中写这个删除?
答案 0 :(得分:0)
DELETE tvp
FROM TVP tvp
FULL OUTER JOIN SimpleTable tbl
ON tvp.FK = tbl.ID
它将删除Simple表中不存在的所有记录