存储过程:

存储过程(stored procedure)有时也称为sproc。存储过程存储于数据库中而不是在单独的文件中,有输入参数、输出参数以及返回值等。

在数据库中,创建存储过程和创建其他对象的过程一样,除了它使用的AS关键字外。存储过程的基本语法如下:

CREATE PROCDUER|PROC <sproc name>

[<parameter name>[schema.]<data type>[VARYING][=<default value>][OUT [PUT]][,

[<parameter name>[schema.]<data type>[VARYING][=<default value>][OUT [PUT]][,

...]]

[WITH

RECOMPILE|ENCRYPTION|[EXECUTE AS {CALLER|SELF|OWNER|<'user name'>}]

[FOR REPLICATION]

AS

<code>|EXTERNAL NAME <assembly name>.<assembly class>

存储过程示例一:

执行存储过程方法一:

执行存储过程方法二:

上面说过,存储过程可以定义返回值。

示例:

修改存储过程示例:

利用存储过程查找三个表内的信息示例:

示例:

示例二:

练习:

要求;写一个存储过程,买东西,自动添加小票进入。

1.我又没有这个商品???
2.你买的数量在我店里能不能够???

create database lianxi120
go
use lianxi120
go
CREATE table mendian
(
scode int primary key identity(101,1),
sname varchar(18),
sshu int,
sprice decimal(18,2),
sgong int,
)
CREATE table gongying
(
gcode int primary key identity(1,1),
gname varchar(18),
glian varchar(18),
gtel decimal(18,0)
)
CREATE table xiaopiao
(
pcode int primary key identity(11,1),
pname varchar(18),
pprice decimal(18,2),
pshu int,
pzong decimal(18,2),
ptime datetime,
)
insert into mendian values('石油',20,70,1)
insert into mendian values('毒品',100,2000,2)
insert into mendian values('M4-S',70,16000,2)
insert into mendian values('天空套',1000,5,3)
insert into mendian values('iPhone7',7000,5,4)
insert into mendian values('兰博基尼',5,4500000,5)
insert into mendian values('绿茶婊',200,3000,5) insert into gongying values('沙特王国','土喀拉耶鲁斯基',98876767675)
insert into gongying values('金三角','迪迦',09783356782)
insert into gongying values('DNF','马化腾',06783357524)
insert into gongying values('全球iPhone直营店','乔布斯',18666666666)
insert into gongying values('三里屯','Licuy',18678199999) select*from mendian
select*from gongying create proc chaoshi
as
begin
select*from mendian
select*from gongying
select*from xiaopiao
end
go
exec chaoshi create proc guanli
@shangpin int, @shuliang int
as
begin
declare @sp int
--count():统计你查询出来的记录数
select @sp=COUNT(*) from mendian where scode =@shangpin
if @sp =1
begin
declare @sl int
select @sl = sshu from mendian where scode =@shangpin
if @sl>@shuliang
begin
declare @sn varchar(18)
select @sn = sname from mendian where scode =@shangpin
declare @spr decimal(18,2)
select @spr = sprice from mendian where scode =@shangpin
declare @zong decimal(18,2)
set @zong =@spr * @shuliang
declare @time datetime
set @time=getdate()
insert INTO xiaopiao VALUES(@sn,@spr,@sl,@zong,@time)
update mendian SET sshu=@sl-@shuliang where scode=@shangpin
end
begin
declare @gy varchar(18)
select @gy=gname from gongying where gcode=(SELECT sgong from mendian where scode=@shangpin)
declare @gname varchar(18)
select @gname=glian from gongying where gcode=(SELECT sgong from mendian where scode=@shangpin)
declare @gtel decimal(18,0)
select @gtel=gtel from gongying where gcode=(SELECT sgong from mendian where scode=@shangpin)
print '商品数量不足,请联系供应商'+@gy+',联系人:'+@gname+',联系电话:'+cast(@gtel as varchar(18))
end
end
else
begin
print'查无此商品'
end
end
GO update mendian set sshu=100 where scode=103
select * from mendian
select * from xiaopiao
exec guanli 103,10

SQL存储过程、视图的更多相关文章

  1. 使用SQL存储过程有什么好处 用视图有什么好处

    随便胡乱说几点,大家补充一下.1.预编译,已优化,效率较高.避免了SQL语句在网络中传输然后再解释的低效率.2.如果公司有专门的DBA,写存储过程可以他来做,程序员只要按他提供的接口调用就好了.这样分 ...

  2. 刷新SQL Server所有视图、函数、存储过程 更多 sql 此脚本用于在删除或添加字段时刷新相关视图,并检查视图、函数、存储过程有效性。 [SQL]代码 --视图、存储过程、函数名称 DECLARE @NAME NVARCHAR(255); --局部游标 DECLARE @CUR CURSOR --自动修改未上状态为旷课 SET @CUR=CURSOR SCROLL DYNAMIC FO

    刷新SQL Server所有视图.函数.存储过程 更多   sql   此脚本用于在删除或添加字段时刷新相关视图,并检查视图.函数.存储过程有效性. [SQL]代码 --视图.存储过程.函数名称 DE ...

  3. SQL存储过程分页(通用的拼接SQL语句思路实现)

    多表通用的SQL存储过程分页 案例一: USE [Community] GO /****** Object: StoredProcedure [dbo].[Common_PageList] Scrip ...

  4. SQL存储过程概念剖析

    一.SQL存储过程的概念,优点及语法 定义:将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execut ...

  5. sql 理解视图

    可以看作是定义在sqlserver上的虚拟的表,本身并不存储数据,仅仅存储一个select语句和涉及的表的引用 通过视图,客户端不再需要知道底层表结构和其之间的关系,视图提供了一个统一访问数据的接口 ...

  6. 11、SQL Server 视图、数据库快照

    SQL Server 视图 什么是视图? 视图是一个虚拟的表,内容源于查询的结果集.只有当视图上建立了索引后,才会具体化. 视图可以筛选和处理数据,而不是直接访问基础表.如:创建一个视图,只展示源表中 ...

  7. 关于MVC工厂模式的增删改查sql存储过程

    这里MVC中用到了反射,工厂,泛型,接口 在搭建框架的时候,除了MVC的三层以外,还有泛型的接口层和工厂层 下面是dal层调用sql存储过程,增删改查,dal层继承了接口层,实现了接口层里面的方法 1 ...

  8. CodeSmith生成SQL Server视图的实体类脚本/对应的生成模板

    C#生成sql视图的实体类 using System;using System.Text;using CodeSmith.Engine;using SchemaExplorer;using Syste ...

  9. SQL SERVER视图对查询效率的提高

    SQL SERVER视图不仅可以实现许多我们需要的功能,而且对于SQL SERVER查询效率的提高也有帮助,下面一起来了解一下. 有两张数据表:A和B,其中A的记录为2万条左右,而B中的数据为200万 ...

  10. PL/SQL存储过程编程

    PL/SQL存储过程编程 /**author huangchaobiao *Email:huangchaobiao111@163.com */ PL/SQL存储过程编程(上) 1. Oracle应用编 ...

随机推荐

  1. Oracle12C相关

    1.jar包安装到MVN本地库 mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.1 ...

  2. Atitit jOrgChart的使用  组织架构图css html

    Atitit jOrgChart的使用  组织架构图css html 1. 项目要做组织架构图,要把它做成自上而下的树形结构,于是决定1 2. Html导入 以来的css js1 2.1. 数据来源 ...

  3. 如何在Infraworks中创建多树种组成的森林

    在Infraworks 2014中,你可以有shp文件导入生成树木和森林,也可以直接在模型中规划一片区域作为森林.美中不足的就是,这些充其量叫树林不能叫森林,因为他们的样式都是一个树种,而真正的森林肯 ...

  4. 应用代理 socket TCP协议 的资料

    http://blog.csdn.net/guowake/article/details/6615728 Linux下高并发socket最大连接数所受的各种限制 http://stackoverflo ...

  5. 关于SharePoint 2013 UserProfile跨场的几点注意

    1.跨场中需要以下几个Service实例,没有这几个会遇到各种问题 2.发布场和消费场同时需要创建Host站点,否则消费场的SiteFeed无法使用. 3.跨场关注的问题请参考:http://www. ...

  6. 【C语言】C语言简介

    目录: 1. [什么是C语言?] 2. [C语言历史] 3. [C语言标准] 4. [C语言特点] 1. 什么事C语言? · C语言是一门高级编程语言,用于人与计算机之间的沟通,就如同人与人之间沟通时 ...

  7. Android 样式和主题(style & theme)

    Android 样式 android中的样式和CSS样式作用相似,都是用于为界面元素定义显示风格,它是一个包含一个或者多个view控件属性的集合.如:需要定义字体的颜色和大小. 在CSS中是这样定义的 ...

  8. C语言中的运算符

    1. 在C语言中运算符包括:算术运算符.关系运算符.赋值运算符.逻辑运算符 2.用运算符把变量.常量连接起来的式子就是表达式 3.我们阅读一个表达式,从表达式的功能和表达式的值来看 4. 算术运算符和 ...

  9. android环境搭建

    Android开发环境的两种安装方式:JDK+Eclipse+ADT直接下载集成的开发工具,解压即可用.下载地址:http://pan.baidu.com/s/1dD3s3bN ,不管采用哪种安装方式 ...

  10. chrome插件——Vimium 键盘手福利

    chrome插件——Vimium 键盘手福利 金刚 chrome chrome插件 Vimium 一直希望纯键盘操作,但是在浏览网页的时候,发现还是很难做到这点的.因为网页浏览的时候会有 各种各样的内 ...