插入或更新数据并返回ID的存储过程

ALTER proc [dbo].[sp_Insert_User]
 @Name varchar(20),
 @Age tinyint,
 @return int output, --0:已存在 1:修改成功 2:插入成功
 @returnID int output --返回用户ID
as
declare
 @tmpName varchar(20),
 @tmpAge tinyint
 
 if exists(select * from [User] where Name=@Name and Age=@Age)
  begin
   set @return=0 --数据相同,直接返回 
  end
 else if exists(select * from [User] where Name=@Name)
  begin
   update [User] set Age=@Age where Name=@Name
   set @return=1 --姓名存在,修改数据
  end
 else
  begin
   insert into [User](Name, Age) values(@Name,@Age)
   set @return=2 --插入数据
   set @returnID=@@IDENTITY 
  end
  
 

posted on 2012-04-15 17:19  老有所依  阅读(314)  评论(0)    收藏  举报

导航