使用(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
答案 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