SqlServer:如何检索现有的id或最后一个id

时间:2016-11-18 15:11:15

标签: sql sql-server-2012

只有当记录中没有记录时,才需要在表中插入记录 在任何情况下,我都想返回id列(如果找到记录)或最后使用的id列(如果记录是新的)。

if exists (select id from DataElement where bytepos=0 and bitpos=0 and byteorder=0 )
    select id from DataElement where bytepos=0 and bitpos=0 and byteorder=0 
else
begin
    insert into DataElement values ('SID','',0,0,0,8,129);
    select scope_identity() as id
end

这个脚本没问题,但是我想避免运行两次SELECT操作 如果我只返回

select id

我收到错误“无效列'id'” 如果有办法存储第一个选择的返回记录并返回它,如果是这样的话?

1 个答案:

答案 0 :(得分:4)

使用变量:

DECLARE @id int 
SELECT TOP 1 @id = id from DataElement where bytepos=0 and bitpos=0 and byteorder=0 
IF @id IS NULL 
begin
    insert into DataElement values ('SID','',0,0,0,8,129);
    select @id = scope_identity() 
end