TSQL 获取最大值并使用该值将行插入到另一个没有标识的表中

问题描述 投票:0回答:0

我需要在另一个表中插入新记录。原始表没有标识列。我写了下面的查询来进行插入,但它插入了 0 条记录。我试图避免使用光标。

Powerpath.dbo.med_specialty  MAX(id) = 57
Connect_Onprem.dbo.med_specialty MAX(id) = 55

我希望看到 2 行插入到 Connect_Onprem.dbo.med_specialty 中。

我递增 ID + 1 以避免违反主键。

非常感谢任何帮助!

INSERT INTO Connect_Onprem.dbo.med_specialty(id, code, name, active)
        SELECT 
        ms.id,
        ms.code,
        ms.name,
        ms.active
        FROM Powerpath_Dev.dbo.med_specialty ms  
        JOIN Connect_Onprem.dbo.med_specialty cms  ON ms.id = cms.id
        WHERE ms.active = 'Y'
        and ms.id = (SELECT MAX(id)+1 from 
               Connect_Onprem.dbo.med_specialty ms1 where ms1.id = ms.id)
tsql insert max
© www.soinside.com 2019 - 2024. All rights reserved.