0
テーブルに値を挿入する必要がありますが、これらの値が存在する場合は、スクリプトに何も挿入しないようにします。私はかなりそれを解決したが、私は最後に私の挿入声明で立ち往生している。値が存在しない場合のSQL挿入
DECLARE @billableitemID int;
set @billableitemid = (select billableitemID from dbo.treatment where
@billableitemid=treatment.id)
set @billableitemID = 256
CREATE TABLE #MembershipBenefitItem
(BenefitID int ,
BillableItemTypeID int ,
BillableItemID int
)
INSERT INTO #MembershipBenefitItem
(BenefitID ,
BillableItemTypeID ,
BillableItemID
)
VALUES (23450,1,@billableitemid),
(57256,1,@billableitemid)
select m.* from #MembershipBenefitItem AS M
left join membershipbenefititem AS M1 on m.billableitemid= m1.billableitemid
and m.billableitemtypeid= m1.billableitemtypeid
and m.benefitid= m1.benefitID
and [email protected] and M1.billableitemtypeID=1 and
M1.benefitID IN(23450,57256)
where M1.ID is null
INSERT INTO MembershipBenefitItem
(BenefitID,
BillableItemTypeID,
BillableItemID
)
select m.BenefitID, m.BillableItemTypeID, m.BillableItemID from
#MembershipBenefitItem AS M
left join membershipbenefititem AS M1 on m.billableitemid= m1.billableitemid
and m.billableitemtypeid= m1.billableitemtypeid
and m.benefitid= m1.benefitID
and [email protected] and M1.billableitemtypeID=1 and
M1.benefitID IN(23450,57256)
where M1.ID is null
DROP TABLE #MembershipBenefitItem
MERGE文になるようなことを行う別の方法:
https://docs.microsoft.com/en-us/sql/t-sql/statements/merge-transact-sql
それは次のようになります。ちょっとした考え。通常はこれが使用されていますが、存在する場合は更新されます。その他の場合は –
を挿入します。 –
'Where ...そして存在しません(キーのcoorlatedサブクエリ)' – xQbert