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. 编写高性能React组件-传值篇

    很多人在写React组件的时候没有太在意React组件的性能,使得React做了很多不必要的render,现在我就说说该怎么来编写搞性能的React组件. 首先我们来看一下下面两个组件 import ...

  2. Selenium - WebDriver Advanced Usage

    Explicit Waits # Python from selenium import webdriver from selenium.webdriver.common.by import By f ...

  3. JavaWeb笔记(二)Servlet

    Tomcat目录简介 bin--可执行文件 conf--配置文件 lib--依赖jar包 logs--日志文件 temp--临时文件 webapps--默认项目部署路径 work--存放运行时的数据 ...

  4. quagga源码学习--BGP协议的初始化

    quagga支持BGP-4,BGP-4+协议,支持多协议(mpls,isis,ospf等等)以及单播,组播路由的导入和分发. 具体的协议,这里就不附录了,网络上有很多资料,或者RFC. 协议源码的学习 ...

  5. nyoj 题目19 擅长排列的小明

    擅长排列的小明 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 小明十分聪明,而且十分擅长排列计算.比如给小明一个数字5,他能立刻给出1-5按字典序的全排列,如果你想 ...

  6. web自动化测试:watir+minitest(二)

    环境搭建: 我已经安装了一台全新的win7虚拟机.下面将开始搭建watir环境. 安装包清单. 安装ruby.执行rubyinstaller-2.2.4-x64.exe 选择语言: 勾选添加到环境变量 ...

  7. 34条简单的SQL优化准则

    转载地址:http://bbs.csdn.net/topics/260002113 我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习.摘录.并汇总部分资料与大家分享!(1)    ...

  8. hihoCoder #1763 道路摧毁

    题目大意 A 国一共有 $n$ 个城市且有 $n-1$ 条双向道路,且任意两个城市都可以通过道路互相到达. 现在 B 国给出了两个城市的集合 $X,Y$,你需要摧毁若干条 A 国的道路,使得任意一个在 ...

  9. HDU 4614 Vases and Flowers(线段树+二分)

    Vases and Flowers Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others ...

  10. react-router 4.0版本学习笔记

    Router 所有路由组件的底层接口,一般情况都不使用,而是使用更加高级的路由. 最常用的有两种<BrowserRouter>.<HashRouter> <Browser ...