CREATE PROC user_reg
(
@UserName Varchar(35),
@UserPassword Char(16),
@UserCname Varchar(35),
@UserEname Varchar(90),
@UserFace Varchar(50),
@UserAddress Varchar(120),
@UserTel Varchar(30),
@UserHandset Varchar(30),
@UserFax Varchar(30),
@UserPost Varchar(20),
@UserQq Varchar(20),
@UserIcq Varchar(20),
@UserMsn Varchar(120),
@UserMail Varchar(120),
@UserUrl Varchar(120),
@UserLocus Varchar(30),
@RetExists Char(1) OUTPUT
)
AS
IF EXISTS(SELECT user_name FROM eda_user
WHERE user_name=@UserName)
SELECT @RetExists='1'
ELSE
BEGIN
declare @trncnt int
select @trncnt = @@trancount
if @trncnt = 0
begin transaction
else
save transaction p1
SELECT @RetExists='0'
INSERT INTO eda_user
(
user_name,
user_cname,
user_ename,
user_face,
user_address,
user_tel,
user_handset,
user_fax,
user_post,
user_qq,
user_icq,
user_msn,
user_mail,
user_url,
user_locus
)
VALUES
(
@UserName,
@UserCname,
@UserEname,
@UserFace,
@UserAddress,
@UserTel,
@UserHandset,
@UserFax,
@UserPost,
@UserQq,
@UserIcq,
@UserMsn,
@UserMail,
@UserUrl,
@UserLocus
)
if @@error <> 0
goto error_handler
Declare @maxid Int
SELECT @maxid=MAX(user_id) FROM eda_user
INSERT INTO eda_login
(
login_id,
login_password
)
VALUES
(
@maxid,
@UserPassword
)
if @@error <> 0
goto error_handler
if @trncnt = 0
commit transaction
return 1
error_handler:
begin
if @trncnt = 0
rollback transaction
else
rollback transaction p1
end
END
GO