关系数据库SQL之可编程性存储过程

SQL server数据库可编程要点 SQL server 摘要 接上基础篇,参考csdn部分博客,文中有链接和 陕西国防工业职业技术学院SQL server2016数据库及应用 mooc课程以及工作中常用的数据库可编程性总结 一 视图 视图是查一个或多个表时生成的虚拟表,不包含数据,只包含查询定义,操作和操作表一样,可以对其进行查询,修改(有限制)和删除 简化用户操作,使用户关注自己感兴趣的数据 1.视图创建 create view 视图名 [(<字段一>),(<字段一>)...] --不能与现有表和视图重名,视 阅读详情

前言

前面关系数据库SQL之可编程性函数(用户自定义函数)一文提到关系型数据库提供了可编程性的函数、存储过程、事务、触发器及游标,前文已介绍了函数,本文来介绍一下存储过程的创建、执行、删除。(还是以前文中银行系统为例)

图片来自网络

概述

存储过程是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数(如果该存储过程带有参数)来执行。

语法


创建存储过程

--创建存储过程
CREATE PROC[EDURE] <存储过程名称> 
    -- 添加存储过程所需的参数
    [
     <@参数1> <参数类型1> [= 默认值] [OUTPUT], 
     ……
     <@参数n> <参数类型n> [= 默认值] [IN|OUT|OUTPUT]
    ]
AS
BEGIN
    -- 这里面可以写为变量赋值语句
    SQL语句块
END

注意

  1. 其中存储过程名不能超过128个字,每个存储过程中最多设定1024个参数;
  2. 存储过程所需的参数可有可无,如果有参数为带参数存储过程,没有参数就是无参数存储过程;
  3. 带参数存储过程参数后面有关键字OUT|OUTPUT为带输出参数存储过程;

[IN|OUT|OUTPUT]介绍

  • IN:在参数后面加了IN关键字的表示为输入参数,默认的情况就是输入参数;
  • OUT:在参数后面加了OUT关键字的表示为输出参数;
  • OUTPUT:在参数后面加了OUTPUT关键字表示为输入输出参数,既是传入参数也是输出参数。

调用存储过程

--调用存储过程
EXEC<存储过程名称> [参数列表]

删除存储过程

--删除存储过程
DROP PROC[EDURE] <存储过程名称>

示例

/*
* 查询交易信息表中总的交易金额,以及支取和存入的总金额,并打印出来
*/
--判断存储过程是否存在
--存在则删除
if exists(select * from sysobjects where name = 'proc_getTransMoney')
drop procedure proc_getTransMoney
go
--创建无参数存储过程
create proc proc_getTransMoney
as
begin
    declare @sum_money money        --交易总额
    declare @get_money money        --支出总额
    declare @sav_money money        --存入总额
    select @sum_money = sum(TransMoney) from TransInfo
    select @get_money = sum(TransMoney) from TransInfo where TransType = '存款'
    select @sav_money = sum(TransMoney) from TransInfo where TransType = '取款'
    print '交易总额='+ltrim(convert(char,@sum_money))
    print '存入总额='+ltrim(convert(char,@sav_money))
    print '支出总额='+ltrim(convert(char,@get_money))
end
go
--执行存储过程
exec proc_getTransMoney
go

/*
* 查询指定账户挂失的账户信息
*/
--判断存储过程是否存在
--存在则删除
if exists(select * from sysobjects where name = 'proc_getLostAccount')
drop procedure proc_getLostAccount
go
--创建带参数输出存储过程
create proc proc_getLostAccount
--
@CId varchar(20) OUTPUT
as
begin
    select A.CustName as 姓名, A.IDCard AS 身份证号, A.TelePhone as 电话号码,
    C.CardID as 银行卡号,A.Address as 地址
    from AccountInfo as A inner join CardInfo as C on A.CustID = C.CustID
    where C.CardID =@CId AND C.IsLost = '是'
end
go
--执行存储过程
declare @CardID  varchar(20);
set @CardID= '银行卡号';
exec proc_getLostAccount  @CardID output;
print @CardID;
go

本文就介绍到这里。
如有疑问请联系我。

原文来自:简书

SQL Server 2005: 探索CLR对象与.NET编程 本文将深入探讨Microsoft SQL Server 2005中引入的重要功能,特别是CLR对象、SQL管理对象(SMO)和Web Services/XML Endpoint。将详细介绍CLR对象如何在数据库中提供更安全、高效的编程模型,并讨论其对业务逻辑实现的影响。同时,我们将了解SMO如何简化数据库对象的管理,以及如何通过Web Services/XML Endpoint无需IIS即可公开数据。本文还提供了扩展存储过程(XPs)的深入分析和CLR对象相比的优势。 阅读详情

相关推荐

数据库存储过程编写 参考手册

数据库 存储过程编写 包括Sqlserver Mysql Oracle 等

数据库可编程性存储过程;函数;触发器

mysql可编程性通常体现在存储过程,自定义函数,触发器 一、存储过程(dos环境需要用delimiter// 修改结束复合)     1、解释: 是存储在数据库服务器中,已经经过数据库以便于操作,在通过应用程序对数据库进行相关操作时,只需要发送调用指令即可(耗时操作分担在数据服务器中)。在数据库数据库中执行普通语句速度要远远低于存储过程           缺点:不同数据库的管理系

随笔_博客 1193

高级编程之数据库常用可编程性开发

你想使你的界面的交互性更强,拥有自动更新功能吗?此刻,当你看到此篇文档你将会感到受宠若惊,因为你此刻对那些感到高端的东西也不再是那么的神秘

SQLserver存储过程简单法与设置定时执行存储过程方法

SQLserver存储过程简单法与设置定时执行存储过程方法

小橘是橘子的博客 1万+

数据库可编程性示例

一、定义变量、顺序、选择、循环结构的应用在查询分析器中可以编写代码实现求1-100数中所有奇数之和,代码如下:declare @i int declare @num int set @num = 0 set @i = 1 while(@i<=100) begin if(@i%2=0) begin set@i = @i + 1

GamesDuan的专栏 2454

关系数据库SQL可编程性触发器

前言 前面关系数据库SQL可编程性函数(用户自定义函数)一文提到关系型数据库提供了可编程性的函数、存储过程、事务、触发器及游标,前文已介绍了函数、存储过程、事务,本文来介绍一下触发器的使用。(还是以前面的银行系统为例) 概述 触发器(TRIGGER)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( INSERT,DELETE, UPDAT

seayxu的博客 659

关系数据库SQL可编程性事务

前言 前面关系数据库SQL可编程性函数(用户自定义函数)一文提到关系型数据库提供了可编程性的函数、存储过程、事务、触发器及游标,前文已介绍了函数、存储过程,本文来介绍一下事务的使用。(还是以前面的银行系统为例) 概述 是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)特性。 语法

seayxu的博客 751

初探SQL Server 2008综合数据可编程性

初探SQL Server 2008综合数据可编程性微软的数据可编程性平台为开发者提供了一个综合的编程框架、web services 和数据连接技术来有效地访问和管理异构数据。   改革数据库应用程序的开发  Microsoft SQL Server 2008是一个综合数据可编程性平台的核心,这个平台使得你可以访问和操纵企业中许多不同的设备、平台和数据服务中获得的关键业务数据。  高效

软件开发 525

关系数据库SQL可编程性函数(用户自定义函数)

前言 在关系型数据库中除了前面几篇基本的数据库和数据表操作之外,还提供了可编程性的函数、存储过程、事务、触发器及游标。 本文介绍的是函数。 函数分为两种: 系统函数 用户自定义函数 准备工作 这里以银行存取款为例说明。 1、创建数据表 --创建账户信息表 create table AccountInfo ( --账户ID CustID int identity(1,1) pr

seayxu的博客 1022

SQL Server 2008综合数据可编程性

微软的数据可编程性平台为开发者提供了一个综合的编程框架、web services 和数据连接技术来有效地访问和管理异构数据。   改革数据库应用程序的开发   Microsoft SQL Server 2008是一个综合数...

cizhen4018的博客 264

浅析SQL Server 2008综合数据可编程性

微软的数据可编程性平台为开发者提供了一个综合的编程框架、web services 和数据连接技术来有效地访问和管理异构数据。   改革数据库应用程序的开发   Microsoft SQL Server 2008是一个综合数据...

cuanji3287的博客 225
上一篇: 关系数据库SQL之可编程性函数(用户自定义函数)
下一篇: 关系数据库SQL之可编程性事务
seayxu
博客等级 码龄10年 15粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值