SQL - 一次执行两个更新查询

时间:2014-09-13 15:39:28

标签: sql sql-server-2008 sql-update

我正在尝试使用更新脚本将一个表中的值分配到另一个表中。

这适用于具有匹配可能性的一条记录

UPDATE    Template_Survey
SET              K2ref = tbAsset.AssetNo
FROM         Template_Structure_Location INNER JOIN
                      Template_Survey ON 
                      Template_Structure_Location.TEMPLATE_STRUCTURE_LOCATION_REF = Template_Survey.TEMPLATE_STRUCTURE_LOCATION_REF INNER JOIN
                      tbAsset ON Template_Structure_Location.RoomID = tbAsset.LocationID AND Template_Structure_Location.RoomID = tbAsset.LocationID
WHERE     K2transferNote ='Reallocate - same no of spare items' and (tbAsset.AssetName = 'Archive or re-use') and (TEMPLATE_SURVEY_REF = 4369 or TEMPLATE_SURVEY_REF = 4405)
and (Template_Survey.K2ref = 0 OR
                      Template_Survey.K2ref IS NULL)

但如果Template_Survey表和tbAsset表中有两条符合条件的记录,则tbAsset表中找到的第一条记录将用作Template_Survey表中两条记录的值。

当只有一个可能的记录时,我运行第二个查询来更新tbAsset.AssetName值,以便前一个查询无法再找到该记录,例如

UPDATE tbAsset
SET tbAsset.AssetName = 'Reallocated to item in same location-needs update'
WHERE     (AssetNo IN
                      (SELECT     K2Ref
                        FROM         Template_Survey)) and  (tbAsset.AssetName = 'Archive or re-use')

如何在重复整个过程之前编写可以对一条记录执行第一次查询然后再对相应记录执行第二次查询的内容,以便每次都找到一条不同的记录?

提前致谢。对不起,如果没有多大意义,那就很难解释了。

0 个答案:

没有答案