我再一次对访问有疑问。我正在将Access项目转换为SSIS项目。在分析查询期间,我发现了类似的内容:
update A inner join B on A.Column1 = B.Column1
and A.Column2 = B.Column2
set A.column3 = B.column3
A.column4 = B.column4...
B.column# = B.column#;
我的问题是关于最后一句话。在同一个表的同一列之间进行设置的目的是什么(B.column#= B.column#)?我的求职者一直在执行这些查询而没有任何问题,但当我尝试将其转换为SQL时,我收到了一条错误消息:" ...因以下错误而失败:"多-part identifier" B.column#"无法受约束。"。
答案 0 :(得分:0)
通过尝试更新表B中的列,您尝试使用单个更新语句更新2个表。并且您无法在SQL中的一个语句中更新多个表,因此会出错。如果需要同时更新A和B,则需要使用多个语句(可能在事务中)以确保将两个语句都视为单个命令。
但是正如你所说,用表格更新表B中的列是没有意义的。我认为你想要这样做的唯一原因是,有一个触发器正在检查哪些列正在更新