SQL Server 第四堂课,创建存储过程。存储过程是一组编译在单个执行计划中的transact-SQL语句。存储过程相当于C#函数,可以允许模块化程序设计,允许更快执行如果某操作需要大量transct-SQL代码或需要重复执行,将在创建存储过程中对其进行分析和优化。

select *from fruit
use shuiguo
--存储过程格式
create proc 存储过程名
--输入参数:当调用存储过程时,所需要输入的数据
--输出参数:从存储过程中赋值后带出数据
as
    --存储过程内容
    return 返回值
go
exec 返回值=存储过程名 参数一,参数二,....参数N

--进销存存储过程
alter proc Jinchuhuo   --定义函数名,相当于C#语言里的 public int 函数名
@ids varchar(50),      --定义变量,需要输入参数
@name varchar(50),
@price decimal(8,2),
@source varchar(50),
@stack varchar(50),
@numbers int,--输入正数代表进货,输入负数代表出货
@image varchar(50)
as
    if @numbers>0 --这代表进货
    begin
        --先查询是否有这种货
        declare @shiok int       --定义新变量
        select @shiok=COUNT(*) from Fruit where Ids = @ids  --输入水果编号的参数,查询水果表里是否有这个编号,然后把查询值赋给变量
        if @shiok>0--有这种货,那就直接改库存
        begin
            update Fruit set Numbers=Numbers+@numbers where Ids=@ids   --把输入的参数@numbers加上水果表里的原来numbers
            return 2 -- 加库存成功
        end
        else--没有这种货,新增到数据库表中
        begin
            insert into Fruit values(@ids,@name,@price,@source,@stack,@numbers,@image)
            return 3--新增数据成功
        end
    end
    else--出货
    begin
        declare @isok int --定义新变量,用来接收根据输入编号查询到的信息数量
        select @isok=COUNT(*) from Fruit where Ids = @ids
        if @isok>0--说明有我们要出货的产品
        begin
            declare @kcnum int --用来接收库存数量
            select @kcnum=numbers from Fruit where Ids=@ids  --把查询出来的水果的numbers赋给@kcnum
            if @kcnum>=abs(@numbers) -- 够出货的,要修改数据库   [email protected] 数量大于输入的参数数量
            begin
                update Fruit set Numbers=@kcnum+@numbers where Ids=@ids -- 修改库存--出货后修改库存
                return 1 -- 出货成功
            end
            else
            begin
                return -2 --有货但不足
            end
        end
        else--没有要出货的产品,直接返回0
        begin
            return -1 -- 没有这个货
        end
    end
go

declare @a int   --定义新变量接受jinchuhuo里的函数
exec @a = jinchuhuo ‘k006‘,‘蟠桃‘,99,‘沂源‘,1,50,‘image/4.gif‘   --输入参数带入存储过程执行,相当于C#函数
print @a   --输出最终结果

一个需要数百行代码的操作由一条执行过程代码的单独语句就可实现,而不需要在网络中发送数百行代码,可作为安全机制使用。

时间: 2024-10-19 02:46:14

SQL Server 第四堂课,创建存储过程。存储过程是一组编译在单个执行计划中的transact-SQL语句。存储过程相当于C#函数,可以允许模块化程序设计,允许更快执行如果某操作需要大量transct-SQL代码或需要重复执行,将在创建存储过程中对其进行分析和优化。的相关文章

SQL Server第四堂课 :视图查询方法,分页查询方法

create view view_1 --建立一个新的视图名 as --建立视图的函数 select student.sno,sname,cno,DEGREE from student join score on student.sno=score.sno go select *from view_1 where sno='1' select *from (select student.sno,sname,cno,DEGREE from student join score on student

SQL Server 第四堂课 用数据库语言while 循环做累加求和。以及数据库的备份,还原,分离,附加。以及check 约束

drop proc qiuhe create proc qiuhe --用数据库语言做累加求和 @n int as declare @sum int --相当于C#语言里定义变量 declare @i int set @sum=0 --再给变量赋值 ,相当于C#语言里的 int sum=0 set @i=1 -- 相当于for 循环里的 int i=1 (int i=1;i<=n;i++) while @i<[email protected] --for(int i=1;i<=n;i++

SQL Server 第三堂课,学习数据库函数。跟C#语言异曲同工,同样是由输入参数,输出参数,函数体,返回值四要素组成,不同的是语法和写法。掌握知识的关键在与学好C#语言的函数

--存储过程 --定义变量 declare @bianliang int set @bianliang =12 --变量赋值 select @bianliang print @biangliang --定义两个变量求和 declare @bianliang1 int, @bianliang2 int set @bianliang1 =1 --给变量赋值用set set @bianliang2 =2 select @bianliang1+@bianliang2 --创建存储过程 create pr

SQL Server之 (四) ADO增删查改 登录demo 带参数的sql语句 插入自动返回行号

SQL Server之 (四) ADO增删查改  登录demo  带参数的sql语句  插入自动返回行号 自己学习笔记,转载请注明出处,谢谢!---酸菜 1.什么是ADO.NET ADO.NET是一组类库,这组类库可以让我们通过程序的方式访问数据库,并以各种方式操作存储在其中的数据; ADO.NET是基于.NET FrameWork,与.NET FrameWork类库的其余部分是高度集成的 2.连接数据库的步骤 ①创建连接字符串 Data Source=XXX-PC; Initial Catal

SQL Server的四种隔离级别(转)

转自:https://www.cnblogs.com/cnxcfeng/articles/1162341.html SQL Server的四种隔离级别知识点整理,特别制作了流程图,方便以后查看! SET TRANSACTION ISOLATION LEVEL{ READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE } 一.未提交读READ UNCOMMITTED(脏读)意义:包含未提交数据的读.例如,在多用户环境下,

SQL Sever 第五堂课:触发器知识。

--触发器:触发器就是一种特殊的存储过程 --特殊的地方在于,触发器是通过对数据库表的操作,来引发 --存储过程是通过人为exec来执行 select *from student create trigger Student_Insert --创建触发器 on student --指定触发器所在的表 after insert --当执行insert操作的时候自动执行触发器,for 和after都是在操作后执行 as update student set sbirthdy='1999-9-9' w

Python第四堂课(LINUX系统指令一)

开启Linux操作系统,要求以root用户登录GNOME图形界面,语言支持选择为汉语 使用su指令  su root 然后根据提示输入密码即可 使用快捷键切换到虚拟终端2,使用普通用户身份登录,查看系统提示符 Ctrl+alt [F1-F6]可以自由切换终端,命令行界面会显示普通维护提示符为$,ROOT用户为# 使用命令退出虚拟终端2上登录的用户 输入EXIT即可 使用快捷键切换到虚拟终端5,使用管理员身份登录,查看系统提示符 此题不再赘述 使用命令退出虚拟终端5上登录的用户 此题不再赘述 切回

[第四堂课]c#自学课程(4)

5章 字符与字符串 1.字符类char的使用 2.转义字符的使用 3.字符串类string的使用 4.比较字符串 5.格式化字符串 6.截图,分割字符串 7.插入与填充字符串 8.删除,复制,替换字符串 9.StringBuilder的使用 6章 流程控制语句 1.选择语句 2.迭代语句 3.跳转语句 视频教程:百度云盘:https://pan.baidu.com/s/1M0oSLG0zyvl80kP_BSVDmg 密码:daic 随手笔记:百度云盘:https://pan.baidu.com/

产品负责人必修的四堂课:从设计到运营,打通产品创新的全链路

随着科技产品的高速迭代更新,产品经理要解决的问题越来越复杂.如何运用系统化的设计思维来定义产品方向,提升产品体验? 在2018年的产品升级里,你打算做几次功能更迭,版本升级呢?迭代升级前,你是否有认真的研究用户的使用习惯.需求,思考究竟什么样的功能是用户最需要的? 7月14-15日,北京国家会议中心,第40届MPD工作坊按照软件研发中心的岗位职能划分,从产品运营.团队管理.架构技术.自动化运维等领域进行深度分享,带你一起思考.探讨.交流. 往期回顾 参会者反馈 加入MPD软件工作坊,与超过500