CREATEPROCEDURE IR_rb_User_UpdateUser ( @UserIDint, @Namenvarchar(50), @Emailnvarchar(100), @Passwordnvarchar(20), @RoleIDint, @iSuccessint output ) AS set@iSuccess=-1--判断是否成功有错误应为插入重复键 IFEXISTS (SELECT Email FROM rb_Users WHERE Email =@Emailand UserID<>@UserID) BEGIN set@iSuccess=-2 return END BEGINTRAN UPDATE rb_Users SET Name =@Name, Email =@Email, Password =@PasswordWHERE UserID =@UserID IF@@ERROR<>0 BEGIN ROLLBACKTRAN return END set@iSuccess=-3 update rb_UserRoles set RoleID=@RoleIDwhere UserID=@UserID IF@@ERROR<>0 BEGIN ROLLBACKTRAN return END COMMITTRAN set@iSuccess=1 GO
条件查询语句: CREATEPROCEDURE IR_SysAuthorization_GetAllSysAuthorization ( @Typeint, @UserIDvarchar(20) ) AS declare@strsqlvarchar(1500) --临时sql语句 declare@strwherevarchar(1000) --临时sql的条件语句 set@strsql='' set@strsql=@strsql+'select UserID,Role,(select typename from SysAuthorizationType where type=t.type) as typeTmp, ' set@strsql=@strsql+'(CASE WHEN State = 1 THEN '+'''有效'''+' ELSE '+'''无效'''+' END) AS StateTmp ' set@strsql=@strsql+'FROM SysAuthorization t ' set@strwhere='' IF@UserID<>'' BEGIN set@strwhere=@strwhere+' and (UserID LIKE '+''''+'%'+@UserID+'%'+''''+')' END IF@Type>0 BEGIN set@strwhere=@strwhere+' and Type = '+CAST(@TypeASvarchar(12)) END if@strwhere<>'' BEGIN set@strsql=@strsql+' where '+right(@strwhere, len(@strwhere)-4) END --按用户名排序 set@strsql=@strsql+' ORDER BY Type,UserID' exec (@strsql) GO