在c#中执行多行sql语句,如:declare @nid char(20)
while 1=1 begin
set @nid = .......(省略)
delete * from table1 where id = @nid
insert into table1 values(@nid)
if (select top 1 id from table1 where id = @nid) = @nid
break
end
select @nid这段sql语句本意是想在table1中插入一个唯一的行,但是多个用户可能同时插入这行,如果插入不成功(重复)就循环重新设置其它id插入。
可是在c#中执行的时候,当遇到重复的时候就直接退出来并出错了,能不能让sqlserver去处理这个异常(循环),而c#忽略它?
多谢多谢
while 1=1 begin
set @nid = .......(省略)
delete * from table1 where id = @nid
insert into table1 values(@nid)
if (select top 1 id from table1 where id = @nid) = @nid
break
end
select @nid这段sql语句本意是想在table1中插入一个唯一的行,但是多个用户可能同时插入这行,如果插入不成功(重复)就循环重新设置其它id插入。
可是在c#中执行的时候,当遇到重复的时候就直接退出来并出错了,能不能让sqlserver去处理这个异常(循环),而c#忽略它?
多谢多谢
set @nid = .......(省略) if exists(select * from table1 where id=@nid)
begin
goto createid
end
else
begin
insert into table1 values(@nid)
endselect @nid