存储过程写插入语句需要注意的地方

一般在往数据库里插入一条新记录的时候,都要判断该记录是否已经存在.比如说一张登录信息表,用户帐号当然是要唯一的,所以在添加一条新的用户帐号时,必须先判断该表中是否已经存在该帐号了.否则.......(那就太混乱拉!)

下面就以一个用户登录表为例子写了一个在存储过程中判断用户是否存在的实现插入功能的存储过程.

ALTER   PROCEDURE  dbo.PR_UserAdd
    
    
@userName   nvarchar ( 50 ),  -- 用户名
     @userPassword    nvarchar ( 50 ) -- 密码
    
AS
    
declare   @count   int  
    
    
SET  NOCOUNT  ON
    
    
-- 判断该用户名是否已经存在,若存在,则@count=1,若不存在,则@count=0
     select   @count = count ( * from   [ UserInfo ]   where  UserName = @userName
    
    
if ( @count = 0 -- 如果不存在
    
    
begin
    
-- 向UserInfo表中插入一条记录
     insert   into   [ UserInfo ] (UserName,UserPassword)  values ( @UserName , @UserPassword );
    
    
SET  NOCOUNT  OFF
    
    
RETURN   @@identity   -- 返回刚插入的这条记录的主键UserID,因为主键ID一般都是整型自动编号的,所以可以用这种方法获得刚插入的这条记录的ID
    
    
end
    
    
else   -- 如果已经存在
    
    
begin
    
    
SET  NOCOUNT  OFF
    
    
RETURN   0   -- 已经存在,则返回0
    
    
end

经验慢慢积累,知识越来越多.

                                      -----XXXX


版权声明:本文为xiao_jun_0820原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。