SQLServer用存储过程实现插入更新数据示例
实现
1)有相同的数据,直接返回(返回值:0);
2)有主键相同,但是数据不同的数据,进行更新处理(返回值:2);
3)没有数据,进行插入数据处理(返回值:1)。
【创建存储过程】
CreateprocInsert_Update @Idvarchar(20), @Namevarchar(20), @Telephonevarchar(20), @Addressvarchar(20), @Jobvarchar(20), @returnValueintoutput as declare @tmpNamevarchar(20), @tmpTelephonevarchar(20), @tmpJobvarchar(20), @tmpAddressvarchar(20) ifexists(select*fromdbo.DemoDatawhereid=@Id) begin select@tmpName=Name,@tmpTelephone=Telephone,@tmpAddress=Address,@tmpJob=Jobfromdbo.DemoDatawhereid=@Id if((@tmpName=@Name)and(@tmpTelephone=@Telephone)and(@tmpAddress=@Address)and(@tmpJob=@Job)) begin set@returnValue=0--有相同的数据,直接返回值 end else begin updatedbo.DemoDatasetName=@Name,Telephone=@Telephone,Address=@Address,Job=@Jobwhereid=@Id set@returnValue=2--有主键相同的数据,进行更新处理 end end else begin insertintodbo.DemoDatavalues(@Id,@Name,@Telephone,@Address,@Job) set@returnValue=1--没有相同的数据,进行插入处理 end
【执行方式】
declare@returnValueint execInsert_Update'15','hugh15','3823345','长安街','副部长',@returnValueoutput select@returnValue
返回值0,已经存在相同的
返回值1,插入成功
返回值2,更新成功