0

标题令人困惑,所以让我解释一下,我认为我需要使用三个表。

  • 第一个表被调用VendorCertifications并且有CertID, Cert, VendorID列。
  • 第二个表是Vendors和有VendorIDVendor
  • 第三个表是VendorCert和有CertCompany

我所做的是插入VendorCertVendorCertification现在我有一个证书列表,CertID现在使用身份规范填写 PK。

我想要做的是返回并使用from更新VendorCertification表格。VendorIDVendors

我在想我可以和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。

4

2 回答 2

0

您已经完成了初始插入,但如果没有,您可能已经使用 OUTPUT 子句返回刚刚插入的 id,以便您可以使用它们将信息放入子表中。只需添加此内容即可为您提供将来执行此类任务的想法。

于 2013-07-31T19:08:04.257 回答
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
于 2013-07-31T17:26:41.537 回答