存储过程最主要的特色:是当写完一个存储过程后即被翻译成可执行码存储在系统表

内,当作是数据库的对象之一,一般用户只要执行存储过程,并且提供存储过程所需的参
数就可以得到所要的结果而不必再去编辑 T-SQL 命令。
存储过程也可用在控制访问权限、为数据库表中的活动创建审计追踪、将关系到数据
库及其所有相关应用程序的数据定义语句和数据操作语句分隔开。

1.存储过程定义:
存储过程是一种在数据库中存储复杂程序,以便在外部程序调用的一种数据库对象,它可以视为数据库中的一种函数或子程序;
存储过程经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数来执行它。存储过程相比传统SQL语句执行方式(先编译,再执行)明显效率高。为了保证数据的完整性,提高执行重复任务的性能和一致性,常采
用存储过程(Stored Procedure)。

2.存储过程的优点:
.减少了服务器/客户端网络流量
.更强的安全性
.代码的复用性
.更容易维护
3.存储过程的类型:

1、系统存储过程:以“sp_”为前缀标识,存储在“master”数据库中,提供对系统表的检索和管理功能。
2、扩展存储过程:以“xp_”为前缀标识,通过执行外部DLL来实现功能。
3、用户定义存储过程:创建在用户数据库中。
4. 临时存储过程:本地临时过程的名称以单个数字符号 (#) 开头;它们仅对当前的用户连接是可见的;它们仅对当前的用户连接是可见的;
当用户关闭连接时被删除。全局临时过程的名称以两个数字符号 (##)开头,创建后对任何用户都是可见的,并且在使用该过程的最后一个会话结束时被删除。

二.

常用系统存储过程有:
exec sp_databases; --查看数据库
exec sp_tables; --查看表
exec sp_columns student;--查看列
exec sp_helpIndex student;--查看索引
exec sp_helpConstraint student;--约束
exec sp_stored_procedures;
exec sp_helptext 'sp_stored_procedures';--查看存储过程创建、定义语句
exec sp_rename student, stuInfo;--修改表、索引、列的名称
exec sp_renamedb myTempDB, myDB;--更改数据库名称
exec sp_defaultdb 'master', 'myDB';--更改登录名的默认数据库
exec sp_helpdb;--数据库帮助,查询数据库信息
exec sp_helpdb master;
存储过程基本语法:
--------------创建存储过程-----------------

CREATE PROC [ EDURE ] procedure_name [ ; number ]
[ { @parameter data_type }
[ VARYING ] [ = default ] [ OUTPUT ]
] [ ,...n ] [ WITH
{ RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ] [ FOR REPLICATION ] AS sql_statement [ ...n ] --------------调用存储过程----------------- EXECUTE Procedure_name '' --存储过程如果有参数,后面加参数格式为:@参数名=value,也可直接为参数值value --------------删除存储过程----------------- drop procedure procedure_name --在存储过程中能调用另外一个存储过程,而不能删除另外一个存储过程
1,参数分为输入参数,输出参数;参数都是可选的,输入参数允许默认值。
示例:
一个简单的存储过程:
CREATE PROCEDURE COURSEINFO
@Cno varchar(20),
@Cname varchar(20) AS
BEGIN
select * from COURSE where CNO=@Cno and CNAME=@Cname
END
GO

如果用sql直接查询,是这样的:

select * from COURSE where CNAME='计算机导论'

查询结果:

用存储过程查询,则是这样的:

exec COURSEINFO 计算机导论,计算机导论
 

或这样:

EXEC COURSEINFO @Cno='3-105',@Cname='计算机导论'

查询结果:


参考资料:

SQL存储过程入门http://www.cnblogs.com/lideng/archive/2013/04/11/3013966.html

SQL Server存储过程http://www.cnblogs.com/hoojo/archive/2011/07/19/2110862.html

存储过程与触发器 :http://read.pudn.com/downloads152/ebook/661195/ch09.pdf

在 ADO.NET 中使用存储过程http://116.252.173.100:16000/dotnetweb/dotnetjpkchtml/jxnr/asp/10.pdf

实现存储过程http://read.pudn.com/downloads115/ebook/485961/229/%E7%AC%AC%E5%85%AB%E7%AB%A0%20%E5%AE%9E%E7%8E%B0%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B.pdf

SqlServer之存储过程的更多相关文章

  1. Sqlserver中存储过程,触发器,自定义函数(二)

    Sqlserver中存储过程,触发器,自定义函数: 自定义函数:1.函数类型:2.函数的参数和返回值: 1.函数类型:标量值函数,返回的是一个标量值表值函数:内联表值函数:多语句表值函数. 标量值函数 ...

  2. Sqlserver中存储过程,触发器,自定义函数(一)

    Sqlserver中存储过程,触发器,自定义函数 1.存储过程有关内容存储过程的定义:存储过程的分类:存储过程的创建,修改,执行:存储过程中参数的传递,返回与接收:存储过程的返回值:存储过程使用游标. ...

  3. Sqlserver中存储过程,触发器,自定义函数

    Sqlserver中存储过程,触发器,自定义函数: 1. 触发器:是针对数据库表或数据库的特殊存储过程,在某些行为发生的时候就会被激活 触发器的分类: DML触发器:发生在数据操作语言执行时触发执行的 ...

  4. JSON序列化及利用SqlServer系统存储过程sp_send_dbmail发送邮件(一)

    JSON序列化 http://www.cnblogs.com/yubaolee/p/json_serialize.html 利用SqlServer系统存储过程sp_send_dbmail发送邮件(一) ...

  5. SqlServer中存储过程中将Exec的执行结果赋值给变量输出

    原文 SqlServer中存储过程中将Exec的执行结果赋值给变量输出 背景: 遇到这样一种情况:动态向存储过程中传入表名和表的某些属性(这里用到的是主键ID),然后利用这两个变量查出一条数据的某些字 ...

  6. SqlServer复杂存储过程

    SqlServer复杂存储过程 CREATE PROCEDURE FETCH_GOOUT_INFO AS BEGIN WITH l as(SELECT A.ZJHM, O.KSQR, O.JSRQ, ...

  7. SQLServer 的存储过程与java交互

    一.   存储过程简介 Sql Server的存储过程是一个被命名的存储在服务器上的Transacation-Sql语句集合,是封装重复性工作的一种方法,它支持用户声明的变量.条件执行和其他强大的编程 ...

  8. SqlServer中存储过程 returnC#代码处理以及对应的MySQL如何改写

    一.SqlServer 中 1. 创建表 create table testuser( id int, --primary key, names ), address ), paw ) ) 2.创建存 ...

  9. SQLServer 中存储过程

    SQLServer 中存储过程返回的三种方式( 包括存储过程的创建, 在存储过程中调用, 在VS中调用的方法)存储过程有三种返回:   1.   用return返回数字型数据   2.   用返回参数 ...

  10. asp.net+Sqlserver 通过存储过程读取数据

    Sqlserver代码  创建存储过程如下: /*根据父id获取类别总数*/ IF EXISTS (SELECT name FROM sysobjects WHERE name = N'getsite ...

随机推荐

  1. aliCloud基于RAMService实现跨账户资源访问

    1,aliCloud基于RAM service实现跨账户ECS资源访问Example 主要的资源为Instance,Image,Snapshot,disk,SecurityGroup Action太多 ...

  2. 浅析WebGIS

    浅析WebGIS 摘要:随着网络的发展,利用Web公布信息越来越普及化.而地理信息系统(GIS)与网络的结合就产生了万维网地理信息系统(WebGIS),它引起了地理信息公布的新的变革,对实现GIS信息 ...

  3. 【稳定婚姻问题】【HDU1435】【Stable Match】

    2015/7/1 19:48 题意:给一个带权二分图  求稳定匹配 稳定的意义是对于某2个匹配,比如,( a ---- 1) ,(b----2) , 如果 (a,2)<(a,1) 且(2,a)& ...

  4. 百度地图SDk 使用

    第一步: 获取密钥 应用名称可以随便填写 发布版SHA1  的获取要在 keytool -v -list -keystore: C:\Users\admin\.android\debug.keysto ...

  5. 初学DIV+CSS要记住的

    初学DIV+CSS?有六个问题需要您关注一下!作为DIV+CSS初学者,如果在动手写代码之前对网页整体结构由一个清晰认识的话,写起来会事半功倍!但是,写的过程中总是有这样那样的问题,使得我们不得不停下 ...

  6. [string]Regular Expression Matching

    Implement regular expression matching with support for '.' and '*'. '.' Matches any single character ...

  7. Majority Element,Majority Element II

    一:Majority Element Given an array of size n, find the majority element. The majority element is the ...

  8. C++结构体中sizeof(1)

    sizeof sizeof操作符的作用是返回一个对象或类型名的长度,长度的单位是字节. 返回值的类型是标准库命名为size_t的类型,size_t类型定义在cstddef头文件中,该头文件是C标准库的 ...

  9. Python爬虫实战(1):爬取Drupal论坛帖子列表

    1,引言 在<Python即时网络爬虫项目: 内容提取器的定义>一文我们定义了一个通用的python网络爬虫类,期望通过这个项目节省程序员一半以上的时间.本文将用一个实例讲解怎样使用这个爬 ...

  10. linux 机器出现or type control d to continue问题的处理办法

    当出现这个界面时,主要是因为磁盘问题 直接输入root密码进入修复模式 在命令行下执行fsck命令 进行相关挂载目录或是磁盘的修改 看下 /etc/fatab下是否有 自己加的开机自动挂载的目录 ,看 ...