Ниже приведен псевдокод для хранимой процедуры SQL Server, который мне нужно написать:
int[] followers = (select FollowerID from StoreFollower where StoreId = @storeId)
insert into Message (senderId, recipientId)
values (@senderId, followers[0])
int rootMessageId = last_id()
foreach (int follower in followers.Skip(1))
insert into Message (senderId, recipientId, rootMessageId)
values (@senderId, follower, rootMessageId
Он получает все идентификаторы подписчика Store
, создает запись в Message
для первой.Затем он создает Message
для каждого последующего идентификатора подписчика, в котором также указывается идентификатор первой Message
записи в пакете.
Мне нужно преобразовать это в хранимую процедуру SQL Server, однако я никогда не писал ее раньшетак что я колеблюсьДолжен ли я использовать table
переменную для хранения select
результата?Должен ли я использовать массивы?Что ближе всего соответствует foreach
здесь?Как мне вырезать первый элемент?
Я был бы очень признателен за эскиз такого процесса, просто чтобы знать, что посмотреть дальше.