如果存在但使用主键更新

时间:2019-07-04 15:33:27

标签: sql sql-server

尝试使用以下代码进行更新,但遇到麻烦,如何从选择中获取ID以便在更新中使用

任何想法

我的代码

    IF EXISTS (SELECT ID
               FROM   table1
               WHERE  ptid = 1 
                      AND ssfid = 5) 
      UPDATE table1 WITH (updlock) 
      SET    ssfid = 5 
      WHERE  ptid = 1; - trying to use ID frm the above Table - how could i?
else
      insert goes here 

1 个答案:

答案 0 :(得分:1)

您可以尝试使用可更新的CTE:

WITH cte AS (
    SELECT ID, ssfid
    FROM table1
    WHERE ptid = 1 AND ssfid = 5
)

UPDATE cte
SET ssfid = 5;

更新逻辑没有多大意义,但这可能是执行问题中所描述内容的一种方法。