sqlserver 存储过程当中如何实现增删改查

 

--声明存储过程   新增编辑
ALTER procedure [dbo].[Eng_MyAddOrEdtADPro]
    @My_Cocode int,
    @Type int, --  --1 新增  2 编辑
    @My_KeyId uniqueidentifier,
    @My_PCode int,
    @My_SCode int,
    @My_PName nvarchar(36),
    @My_SName nvarchar(36),
    @My_Order int,
    @My_Apply_UserName nvarchar(36),
    @My_Apply_UserId uniqueidentifier,--申请人的Id
    @My_Error int output,
    @My_ErrorMessage nvarchar(50) output
as
declare @error int;
declare @errormessage nvarchar(50);


set @error=0;
set @errormessage='返回数据成功';


BEGIN     


      DECLARE @My_SKeyId nvarchar(36);
      DECLARE @My_SCode2 int;
      DECLARE @My_PKeyId nvarchar(36);
      DECLARE @My_PCode2 int;

      SELECT @My_SCode2=My_SCode,@My_SKeyId=My_SKeyId FROM MyADs A WHERE A.My_Cocode=@My_Cocode AND (My_SCode=@My_SCode OR A.My_SName=@My_SName) AND My_Status=1;
           
      SELECT @My_PCode2=My_PCode,@My_PKeyId=My_PKeyId FROM MyADs A WHERE A.My_Cocode=@My_Cocode AND (My_PCode=@My_PCode OR A.My_PName=@My_PName) AND My_Status=1;

      IF ISNULL(@My_SCode,'')='' OR  ISNULL(@My_SCode,'')!=@My_SCode2 OR ISNULL(@My_SKeyId,'')='' OR  ISNULL(@My_PCode,'')='' OR ISNULL(@My_PCode,'')!=@My_PCode2 OR ISNULL(@My_PKeyId,'')=''
      BEGIN
          SET @error=1;
          SET @errormessage = '不存在或者不匹配!';
          -- RETURN;
      END

      IF @error=0
      BEGIN

      IF @Type=1
      BEGIN
           INSERT INTO MyADs VALUES (@My_KeyId,@My_Cocode,@My_PKeyId,@My_SKeyId,@My_PCode2,@My_SCode2,@My_PName,@My_SName,1,@My_Order,@My_Apply_UserName,@My_Apply_UserId,GETDATE(),@My_Apply_UserName,@My_Apply_UserId,GETDATE());
      END

      
      IF @Type=2 
      BEGIN
           UPDATE MyADs SET My_SName=@My_SName,@My_PName=My_PName,My_Order=@My_Order,My_UpdateUserName=@My_Apply_UserName,My_UpdateUserId=@My_Apply_UserId,My_UpdateDate=GETDATE()  WHERE  My_KeyId=@My_KeyId AND My_Status=1;
      END

      SET @errormessage =@My_SName+ '更新成功!';

      END

     SET @My_Error=@error;SET @My_ErrorMessage=@errormessage
     SET @My_SKeyId=NULL;
     SET @My_PKeyId=NULL;
     SET @My_SCode2=NULL;
     SET @My_PCode2=NULL;
     SET @error=NULL;
     SET @errormessage=NULL;
END

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/28122.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV for Python 学习第三天 :图片处理之NumPy库与OpenCV相结合

上一篇博客我们了解了图像在OpenCV中的保存方式。并且我们自己上手创建了一张灰度图像和一张彩色图像。除此之外,我们还了解到了彩色图像通道在OpenCV中和我们日常所了解的不一样,是通过BGR的顺序进行编码的。咱们一定要记清楚哦~ 那么今天,我…

基于单片机心率脉搏心率血压体温血氧检测系统的设计与实现

功能介绍 本次设计通过32系列单片机STM32进行数据处理,配置引脚和JFC103传感器以及温度传感器进行数据通信。采用防水DS18B20进行腋下温度采集,通过单总线方式进行数据传输。心率血氧血压模块通过串口通信方式把采集到的数据发送给单片机,所有…

【前端知识】JavaScript——var 与 let 的区别

【前端知识】JavaScript——var 与 let 的区别 var声明的变量会自动提升到函数作用域顶部,而let不会。 在解析代码时,JavaScript 引擎会注意出现在块后面的 let 声明,只不过在此之前不能以任何方式来引用未声明的变量。在 let 声明之前的执行…

MySQL-DQL-案例

案例 案例1 根据需求完成员工管理的条件分页查询 具体代码 -- 案例1:按需求完成员工管理的条件分页查询 - 根据输入条件,查询第一页数据,每页展示10条记录 -- 输入条件: -- 姓名:张 -- 性别:男 -- 入职时间…

NAT 地址转换路由器配置命令(华为路由器)

#AR1路由器配置 # acl 2000 rule permit source any # interface GigabitEthernet0/0/1 nat outbound 2000 ip address 1.1.1.1 24 # interface GigabitEthernet0/0/0 ip address 172.16.1.1 255.255.255.0 # ip route-static 0.0.0.0 0.0.0.0 1.1.1.2 ip route-static …

怎么进行流程图制作?分享几种绘制方法

怎么进行流程图制作?流程图是一种图形化表示流程的图表,通常用于描述业务、计划或工作流程。它可以帮助人们更好地理解复杂的流程,并且提供了一种清晰的方法来记录和共享流程信息。下面介绍一些绘制流程图的方法,可以帮助我们快速…

Authing 入选长城战略咨询《2023 中国潜在独角兽企业》报告

2023 年 6 月 20 日,长城战略咨询(GEI)发布《2023 中国潜在独角兽企业研究》报告。Authing 作为国内首家身份云(IDaaS)厂商入选中国潜在独角兽企业榜单。独角兽企业指具有发展速度快、数量稀少、备受投资者青睐等属性的…

react 初学(1)

1.安装环境 需要Node.js 自行下载安装 然后全局安装create-react-app npm install -g create-react-app 如果出现报错请参考 create-react-app -V 报错无法将“create-react-app”项识别为 cmdlet、函数、脚本文件或可运行程序的名称_Java-请多指教的博客-CSDN博客 2.创建…

HTTP1.1、HTTPS、HTTP2.0 、HTTP3.0

HTTP1.1 优点: 整体方面:简单、灵活和易于扩展、应用广泛和跨平台 性能方面:长连接、管道网络传输解决请求队头阻塞(没有使用) 缺点: 安全方面:无状态、明文窃听、伪装、篡改 性能方面&am…

【NLP】多头注意力概念(02)

接上文: 【NLP】多头注意力概念(01) 五、计算注意力 将 Q、K 和 V 拆分为它们的头部后,现在可以计算 Q 和 K 的缩放点积。上面的等式表明,第一步是执行张量乘法。但是,必须先转置 K。 展望未来,每个张量的seq_length形状将通过其各自的张量来识别,以确保清晰…

抽象工厂模式

在开发一款游戏时,我们需要开发按钮Button及展板Board等组件,我们有多种风格Ligth或Dark,不同风格下组件的颜色、形状也不相同。如果按照工厂方法模式,则设计如下: 图 工厂方法模式实现上述需求 以上方法存在两个问题…

自动化测试工具比传统测试工具的优势体现在哪里?

随着软件行业的快速发展和扩张,自动化测试工具在提高测试效率和质量方面起到了不可或缺的作用,那你知道自动化测试工具比传统测试工具的优势体现在哪里吗? 首先,自动化测试工具能够大大缩短测试周期。相比于传统手动测试&#xff…