标题令人困惑所以让我解释一下,我认为我有三张桌子需要合作。
VendorCertifications
,并且有CertID, Cert, VendorID
列。Vendors
,其中包含VendorID
和Vendor
列VendorCert
,并且有Cert
和Company
列我所做的是将VendorCert
插入VendorCertification
,现在我有一个Certs列表,现在使用身份规范填写PK CertID
。
我想要做的是返回并使用VendorCertification
VendorID
更新Vendors
表。
我原以为我可以使用Vendors
Vendor
列加入VendorCerts
Company
列。
然后使用CTE更新VendorCertification
VendorID
列。
这就是我写的:
with temptable as (
select
vce.Company, v.Vendor, vce.Certification, V.VendorID
from
VendorCert as VCE
join
Vendors as V on V.Vendor = VCE.Company)
update VendorCertifications
set VendorID = temptable.VendorID
where temptable.Certification = Certification
这不起作用,我得到一个“无法绑定”的错误,我试图找出它为什么给我这个,但我没有运气。我甚至不确定我是否应该这样做,我想不出一种方法来使用正常的更新语句来执行它,因为它涉及(至少我认为它涉及)三个表。任何帮助表示赞赏。认证列表大约为300个,供应商列表大约有40个。
答案 0 :(得分:0)
请试试这个:
with temptable (Company,Vendor,Certification,VendorID)
as(
select vce.Company,v.Vendor,vce.Certification,V.VendorID
from VendorCert as VCE
join Vendors as V
on V.Vendor=VCE.Company)
update VC
set VC.VendorID=TT.VendorID
from VendorCertifications VC join temptable TT on VC.Certification=TT.Certification
答案 1 :(得分:0)
您已经完成了初始插入,但如果还没有,您可能已经使用OUTPUT子句返回刚刚插入的ID,因此您可以将它们用于将信息放入子表中。 JUSt添加这个,为您提供将来执行此类任务的想法。