这是情况
我在 SQL 中有一个 SP,它适用于两个Table type variables
分别用于执行批量插入的 SP,现在它们当然Mails & attachments
在 SQL 中都有关系,SP 看起来像这样one to many
MailId
MailInsertSP
@Mails mailsTableVar
@Attachements attachementsTableVar
-- this query will insert mails & generate MailIds
insert into Mails
( mails table column list... )
select
value list
from @Mails
-- this query will insert attachments
insert into Attachments
(MailId, other columns...)
select
(select MailId from Mails where MailDate = TBL.MailDate) as MailId,
other values
from @Attachements as TBL
到现在为止MailDate
是unique
用于邮件,所以这段代码工作正常,但现在我遇到了MailDate
两行相同的情况,我没有任何其他列可以用作唯一键,所以我需要一些解决方案我可以插入邮件并获取生成的 ID,这些 ID 可用于下一次插入附件。
如果解决方案没有以下内容,那将是可观的
任何类型的循环。
光标。