我有一个表tblApply,它的主键(email_id,Job_id)是tblEmail(email)和tblJob(Job_id)的外键。我想在tblApply中插入新值,但要避免在email_id,Job_id组合中已经存在的值。下面是我的代码。我应该怎么做。我正在存储过程中执行此操作。

insert into tblApply(email_Id, Job_Id, Apply_Date)
    select @emailId, tblJobsJob_Id, GetDate() from tblJobs
    where Job_Active = 1

最佳答案

根据我的理解,您希望设计一种用于存储行的存储过程,以避免插入重复的唯一键值。

如果是这种情况,您可以执行以下操作:

insert into tblApply(email_Id, Job_Id, Apply_Date)
select @emailId, tblJobsJob_Id, GetDate() from tblJobs
where Job_Active = 1 AND
      NOT EXISTS(SELECT 1 FROM tblApply
                 WHERE email_Id = @emailId AND Job_Id = tblJobsJob_Id)

关于sql - 插入选择不存在的sql server多列主键冲突,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38408643/

10-09 03:54