У меня есть хранимая процедура с табличным параметром GroupUserTVP:
CREATE TYPE [dbo].[GroupUserTVP] AS TABLE
(
[GroupId] [uniqueidentifier] NULL,
[UserId] [uniqueidentifier] NULL
)
У меня есть таблица GroupUser
со следующей структурой:
CREATE TABLE [dbo].[GroupUser]
(
[GroupId] [uniqueidentifier] NOT NULL,
[UserId] [uniqueidentifier] NOT NULL
)
TVP будет содержать коллекцию GroupId и UserId. Если в таблице GroupUser есть пользователи группы, которых нет в TVP, то эти пользователи группы должны быть удалены.
Есть ли способ сделать некоторый тип динамического оператора удаления, основанного на соединении, чтобы выполнить это? Я могу разбить это на части и использовать переменные таблицы и т. Д., Но мне было интересно, есть ли здесь эксперт по SQL, который мог бы написать это удаление в одном выражении или, может быть, в двух утверждениях?