您的位置:首页 > 数据库

MS SQL的存储过程

2016-07-29 16:07 274 查看
-- =============================================
-- Author:
-- Create date: 2016-07-01
-- Description:	注册信息
-- =============================================
ALTER PROCEDURE  [dbo].[sp_MebUser_Register]
(
@UserType INT,
@MobileNumber VARCHAR(11),
@MobileCode VARCHAR(50),
@LoginPwd VARCHAR(50),
@PayPwd VARCHAR(50),
@PlateNumber VARCHAR(20),
@UserTrueName VARCHAR(20),
@UserIDCardNumber VARCHAR(50),
@UserSex bit,
@AddTime DATETIME,
@Max_ParkUserId    VARCHAR(20)   output--输入输出参数
)
AS
--IF EXISTS(SELECT * FROM Meb_User WHERE MobileNumber=@MobileNumber)--先判断用户是否存在

declare  @datenow  varchar(100)  --声明变量 时间
declare  @rt_code int
declare  @VCOUNT int
declare @returnmesg varchar(100)
BEGIN

set @datenow=(Select CONVERT(varchar(100), GETDATE(), 112)) --变量赋值
set @Max_ParkUserId=@datenow+@MobileNumber --时间+手机号=用户服务号
set  @VCOUNT=(SELECT COUNT(1)  FROM Meb_User mb WHERE mb.MobileNumber=@MobileNumber)
if (@VCOUNT>0)
BEGIN
set @returnmesg ='该手机号已注册'
RETURN  set @rt_code=1
END
else
BEGIN
--SET NOCOUNT ON;
--当SET NOCOUNT 为ON 时,不返回计数(计数表示受Transact-SQL 语句影响的行数,例如在Sql server查询分析器中执行一个delete操作后,下方窗口会提示()Rows Affected)。当  SET NOCOUNT 为OFF 时,返回计数,我们应该在存储过程的头部加上SET NOCOUNT ON 这样的话,在退出存储过程的时候加上SET NOCOUNT OFF这样的话,以达到优化存储过程的目的。
begin transaction
begin try
insert into Meb_User (UserType,MobileNumber,MobileCode,LoginPwd,PayPwd,PlateNumber,UserTrueName,UserIDCardNumber,UserSex,AddTime,ParkUserId)
values(@UserType,@MobileNumber,@MobileCode,@LoginPwd,@PayPwd,@PlateNumber,@UserTrueName,@UserIDCardNumber,@UserSex,@AddTime,@Max_ParkUserId)

commit transaction
set @rt_code=0;

return;

end try

begin catch

print '错误'

rollback transaction

end catch
END

END


很久没使用MSSQL了 最近新的项目需求记录一下点滴。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: