如何在SQL Server中获取重复的行标识符

时间:2017-02-19 17:19:17

标签: sql sql-server

使用(id, value)的简单表作为value应始终唯一的字段。

在尝试插入重复行时,我们如何才能获得DB中已存在的行标识符(id)?最好是在单个查询中?

我现在正在做的蛮力是:

- insert into table
- if @GetGeneratedKeys returns 0, then row is already present
- make another query to get that row

使用ID注释自动生成新行的编辑:@GetGeneratedKeys,因此无法查询是否存在ID

1 个答案:

答案 0 :(得分:0)

DECLARE @ExistingID integer;
SELECT @ExistingID = [ID] FROM [MyTable] WHERE [Value] = @SomeValue;
IF @ExistingID IS NULL BEGIN
    --It does not exist yet, do something
END ELSE BEGIN
    --It already exists and @ExistingID holds the ID, do something
END