关于存储过程事务,返回值,变量声明以及执行方法

news/2024/6/29 16:55:00 标签: 存储, insert, parameters, email, date, user

      Sql存储过程是一个非常有用的东西,我们常需要在执行完一个储存过程后知道执行的结果,所以我们可以在存储过程中定义变量来告诉我们返回状态和执行信息

      set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go


-- =============================================
-- Author:  <Author,>
-- Create date: <Create Date,,2010-5-22>
-- Description: <Description,,插入用户>
-- =============================================
ALTER PROCEDURE [dbo].[Insert_User]
 -- Add the parameters for the stored procedure here
 @Account  VARCHAR(100)='',--名称
 @NickName VARCHAR(100)='',--昵称
 @UID BIGINT =0,--UID
 @PassWord VARCHAR(32)='',--密码
 @EMAIL VARCHAR(50)='',--邮箱
 @Status TINYINT =0,--类别
 @UseStatus TINYINT =0,--状态
 @RoleID SMALLINT =0--角色
AS
BEGIN TRANSACTION roll_back
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;
 SAVE TRANSACTION roll_back
 declare @return_value int
 declare @return_message varchar(50)
 IF NOT EXISTS (SELECT Account FROM dbo.UserBase WHERE Account=@Account OR NickName=@NickName)
 BEGIN  
  INSERT INTO dbo.UserBase(Account,PassWord,NickName,UID)
    VALUES(@Account,@PassWord,@NickName,@UID)
  INSERT INTO dbo.UserLimite(UID,Status,RoleID,UseStatus)
    VALUES(@UID,0,@RoleID,0)
  INSERT INTO dbo.UserExpand(UID,NAME,EMAIL)
    VALUES(@UID,@NickName,@EMAIL)
  set @return_value=1
  set @return_message='操作成功'
  IF(@@ERROR<>0)
  BEGIN
   set @return_value=0
   set @return_message='操作失败'
   ROLLBACK TRANSACTION roll_back
  END
  IF(@@ERROR>0)
  BEGIN
   set @return_value=0
   set @return_message='操作失败'
   ROLLBACK TRANSACTION roll_back
  END
 END
 ELSE
 BEGIN
  set @return_value=0
  set @return_message='已有此用户名称或昵称'
  RAISERROR ('已有此用户名称或昵称!', -- Message text.
      16, -- Severity.
      1 -- State.
      );
 END
 SELECT @return_value IsSuccess,@return_message Message
 commit TRANSACTION

 

如果执行储存过程,就是下面这行代码

EXEC dbo.Insert_User 'AA1','AA1','125','0000','174510355@qq.com','0','0','0'

结果如下图

返回结果


http://www.niftyadmin.cn/n/1104235.html

相关文章

P2569 [SCOI2010]股票交易(dp+单调队列)

题目描述 最近 lxhgww\text{lxhgww}lxhgww 又迷上了投资股票&#xff0c;通过一段时间的观察和学习&#xff0c;他总结出了股票行情的一些规律。 通过一段时间的观察&#xff0c;lxhgww\text{lxhgww}lxhgww 预测到了未来 TTT 天内某只股票的走势&#xff0c;第 iii 天的股票买入…

《The Unified Modeling Language User Guide》Second Edition

第一次接触UML 还是在本科的软件工程课上&#xff0c;因为功课多没顾上详细学习&#xff0c;实际应用也很少。后来读研究生选修了面向对象分析与设计&#xff0c;算是再一次学习了一番UML&#xff0c;可惜也未能全面了解&#xff0c;仍旧是大概有些印像。后来实践多了&#xff…

外向型经济增长

外向型经济增长模型以满足其他经济体需求为主要动力。早期的经济体非常简单&#xff0c;各部落产品有限&#xff0c;部落间交换产品是因为各自产品的种类不同&#xff0c;部落间互有需求。如果个别产品需求旺盛&#xff0c;部落便可能专注于这些产品的生产&#xff0c;依靠外贸…

c#程序设计,框架设计,设计模式

对于所有要想开发c#底层框架的程序员来说&#xff0c;包括我本人&#xff0c;也是很喜欢用框架的模式来开发项目。第一&#xff0c;框架会让一个开发者觉得项目的思路&#xff0c;结构很清晰&#xff0c;第二&#xff0c;便于项目后期的维护。对于一个项目而言&#xff0c;后期…

201703-1 分蛋糕

题目传送门&#xff1a;http://118.190.20.162/view.page?gpidT57 问题描述 试题编号&#xff1a;201703-1试题名称&#xff1a;分蛋糕时间限制&#xff1a;1.0s内存限制&#xff1a;256.0MB问题描述&#xff1a; 问题描述小明今天生日&#xff0c;他有n块蛋糕要分给朋友们吃&…

从外向到内生

外向型经济很难长久维持&#xff0c;经济体长期发展最终需依靠自身需求&#xff0c;实现内生型经济增长。从外向型向内生型过渡&#xff0c;有几个方面是必须谨慎小心的&#xff1a;一、扩大内需&#xff1b;二、保障就业&#xff1b;三、平衡贸易&#xff1b;四、合理调配资源…

[Swift]LeetCode753. 破解保险箱 | Cracking the Safe

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号&#xff1a;山青咏芝&#xff08;shanqingyongzhi&#xff09;➤博客园地址&#xff1a;山青咏芝&#xff08;https://www.cnblogs.com/strengthen/&#xff09;➤GitHub地址&a…

《荀子》

还好买的是口袋书&#xff0c;闲时、坐车或排队的时候可以拿出来看一小段&#xff0c;时间长了也就读完了。书中内容非常强调名分&#xff0c;部分内容局限于君臣、君民之间&#xff0c;但若将“君”换成高层执政者&#xff0c;“臣”换为普通执政者&#xff0c;这些内容放在今…