如何从表中获取前50行并将其更新到另一个表中,其中ID(行)可能不存在于第二个表中,以及更新'表?
前50名我指的是已经不在CycleCount表中的50个位置(asc),一些背景:我想在CycleCount表中存储50个位置(每次更新)。存在的所有位置都填充在表Warehouse中。每次,我都想在仓库中添加50个新位置到Cyclecount,但更新后的位置需要按升序排列(仓库位置)
我尝试过使用UPDATE TOP(50)Table1 SET ...等但在这种情况下不起作用。
我有这段代码,但这会更新所有位置(行)而不是前50个(新)位置:
DECLARE @N INT
SET @N = 50
UPDATE CycleCount
SET MagLoc = items.UserField_06,
Itemcode = items.ItemCode,
CCDate = GETDATE()
FROM Warehouse LEFT OUTER JOIN items ON Warehouse.Location = items.UserField_06
WHERE WareHouse.Location NOT IN (select MagLoc from CycleCount)
GO
答案 0 :(得分:2)
您可以使用WITH
关键字:
;WITH query
AS (
SELECT TOP 50 *
FROM [Your Query]
)
UPDATE query
SET MagLoc = items.UserField_06,
Itemcode = items.ItemCode,
CCDate = GETDATE()