只有当记录中没有记录时,才需要在表中插入记录 在任何情况下,我都想返回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'” 如果有办法存储第一个选择的返回记录并返回它,如果是这样的话?
答案 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