ylbtech-SQL Server:SQL Server-了解存储过程

了解存储过程

ylb:了解存储过程 返回顶部
存储过程

2.2.1 主要的编程结构:

  • 变量
  • 数据类型
  • 输入/输出变量
  • 返回值
  • 条件执行
  • 循环
  • 注释
2.2.3 存储过程的结构
存储过程的代码有头部(header)和主体(body)组成。存储过程的头部定义了存储过程的外部属性——名称和包含一个或多个参数 的参数列表。参数名称必须以@字符开始。开发人员必须定义每个参数的数据类型。头部必须以Create Procedure关键字开始 ,以As关键字结尾。
存储过程的主体包含存储过程运行时将要执行的各个T-SQL语句。
2.3.2 命名对象和变量

  • 实体描述
  • 名称长度
  • 缩写
  • 名称格式化
常用单词缩写

  • Current=Crnt
  • Address=Adr
  • Erorr=Err
  • Average=Avg
数据库对象

  • 基本部分,描述了对象的内容。
  • 前缀,描述了数据库对象的类型
数据库对象 前缀 例子
Table (无前缀) Activities
Column (无前缀) ActivityId
View v vActivities
Stored procedure pr prCompleteOrder
Trigger tr trOrder_IU
Default df dfToday
Rule rul rulCheckZIP
Index ix ix_LastName
Primary key pk pk_contactId
Foreign key fk fk_Order_OrderType
User-defined data type udt udtPhone
User-defined functions fn fbDueDates
触发器(名称有2部分组成)

  • 前缀(tr),描述了数据对象的类型。
  • 基本部分,描述了触发器所附加的表。
  • 后缀,显示了修改语句(Insert, Update以及Delete)
3.1.2 存储过程具有以下功能:

  • 返回信息给调用者(caller)。
  • 修改数据库中的数据。
  • 在数据层实现业务逻辑。
  • 控制数据访问权限。
  • 改善系统性能。
  • 降低网络流量。
  • 执行其他动作和操作(比如处理电子邮件、执行各种系统操作命令和进程、管理其他的SQL Server对象。)
从存储过程接受信息的4个途径:

  • 结果集
  • 输出参数
  • 返回值
  • 全局游标

3.2 存储过程类型

  • 用户定义
  • 系统
  • 扩展
  • 临时
  • 全局临时
  • 远程
还有几个数据库对象,它们在本质上非常相似:

  • 触发器
  • 视图
  • 用户定义函数
作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

ylb:了解存储过程的更多相关文章

  1. ylb:SQL 存储过程(Procedure)

    ylbtech-SQL Server: SQL Server-SQL 存储过程(Procedure) 1,存储过程(Procedure)-基本创建与操作 2,存储过程(Procedure)-入参 3, ...

  2. ylb:SQLServer常用系统函数-字符串函数、配置函数、系统统计函数

    原文:ylb:SQLServer常用系统函数-字符串函数.配置函数.系统统计函数 ylbtech-SQL Server:SQL Server-SQLServer常用系统函数 -- ========== ...

  3. 将表里的数据批量生成INSERT语句的存储过程 增强版

    将表里的数据批量生成INSERT语句的存储过程 增强版 有时候,我们需要将某个表里的数据全部或者根据查询条件导出来,迁移到另一个相同结构的库中 目前SQL Server里面是没有相关的工具根据查询条件 ...

  4. Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程+事物案例演示

    Dapper的牛逼就不扯蛋了,答应群友做个入门Demo的,现有园友需要,那么公开分享一下: 完整Demo:http://pan.baidu.com/s/1i3TcEzj 注 意 事 项:http:// ...

  5. MySQL主从环境下存储过程,函数,触发器,事件的复制情况

    下面,主要是验证在MySQL主从复制环境下,存储过程,函数,触发器,事件的复制情况,这些确实会让人混淆. 首先,创建一张测试表 mysql),age int); Query OK, rows affe ...

  6. mysql进阶之存储过程

    往往看别人的代码会有这样的感慨: 看不懂 理还乱 是离愁 别是一番滋味在心头 为什么要使用存储过程? 在mysql开发中使用存储过程的理由: 当希望在不同的应用程序或平台上执行相同的函数,或者封装特定 ...

  7. MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句

    第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 第三篇:MySQL 系列(三)你不知道的 视图.触发器.存储过程.函数 ...

  8. 参数探测(Parameter Sniffing)影响存储过程执行效率解决方案

    如果SQL query中有参数,SQL Server 会创建一个参数嗅探进程以提高执行性能.该计划通常是最好的并被保存以重复利用.只是偶尔,不会选择最优的执行计划而影响执行效率. SQL Server ...

  9. MSSQL 事务,视图,索引,存储过程,触发器

    事务 事务是一种机制.是一种操作序列,它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行. 在数据库系统上执行并发操作时事务是作为最小的控制单元来使用的.这特别适用于多用户同时操作的数据 ...

随机推荐

  1. python2.7运行报警告:UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal解决办法

    1. 程序源代码报错部分: #选择年级if grade == '幼升小': outline.nianji().pop(0).click()elif grade == "一年级": ...

  2. Windows系统中 JDK安装及环境配置

    需要安装jdk的第一步就是先去官网下载好JDK,选择需要的版本. Windows系统 1.将下载好的压缩包解压,点击解压得到的jdk执行文件开始安装.在安装过程中会弹出两个安装,一个是jdk,一个是j ...

  3. Halcon17 windows 下载

    Halcon17 windows 下载地址:http://www.211xun.com/download_page_9.html HALCON 17 是一套机器视觉图像处理库,由一千多个算子以及底层的 ...

  4. Linux下MySQL c++ connector示例

    最近在学习数据库的内容,起先是在windows下用mysql c++ connector进行编程,之所以选用c++而不是c的api,主要是考虑到c++ connector是按照JDBC的api进行实现 ...

  5. HLG 1494网络 (求的割点数目)可做模板

    网络 Time Limit: 1000 MS Memory Limit: 65535 K Total Submit: 103(32 users) Total Accepted: 54(31 users ...

  6. POJ 3368:Frequent values(线段树区间合并)

    题目大意,给出一段非降序列,求一些区间中出现频率最高的数的出现次数. 分析: 显然,区间中一个数多次出现必然是连续的,也就是最长的连续相等的一段. 用线段树解决,维护三个信息:一个区间最长连续的区间的 ...

  7. 【Luogu】P4159迷路(矩阵优化)

    题目链接 将每个点拆成时刻1~9,然后根据题目要求连边,比如i-j有一条权为x的边就从点i-x向点j-1连一条边,表示经过x次之后可以到达. 然后就矩阵快速幂乱搞就好了. #include<cs ...

  8. 记一次 pip list --outdated 错误

    在 Windows CMD 执行 pip list --outdated,出现如下错误:" [WinError 10061] 由于目标计算机积极拒绝,无法连接",原因是我之前用的源 ...

  9. [BJOI2006][bzoj1001] 狼抓兔子 [最小割]

    题面: 传送门 思路: 其实就是一道最小割的题目...... 我的写法加了两个优化,常数比较小,所以过掉了 一个是当前弧,一个是若当前点并不能流出去,那么标记dep为-1 听说正解是对偶图最短路?可以 ...

  10. react-router路由参数

    react-router会自动为路由组件插入三个参数,但是不会主动为路由组件的子组件注入 子组件当中需要在属性当中传入 不是路由组件需要注入路由参数的话,也可以使用withRouter注入,而不是从属 ...