SqlServer之存储过程
存储过程最主要的特色:是当写完一个存储过程后即被翻译成可执行码存储在系统表
内,当作是数据库的对象之一,一般用户只要执行存储过程,并且提供存储过程所需的参
数就可以得到所要的结果而不必再去编辑 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
SqlServer之存储过程的更多相关文章
- Sqlserver中存储过程,触发器,自定义函数(二)
Sqlserver中存储过程,触发器,自定义函数: 自定义函数:1.函数类型:2.函数的参数和返回值: 1.函数类型:标量值函数,返回的是一个标量值表值函数:内联表值函数:多语句表值函数. 标量值函数 ...
- Sqlserver中存储过程,触发器,自定义函数(一)
Sqlserver中存储过程,触发器,自定义函数 1.存储过程有关内容存储过程的定义:存储过程的分类:存储过程的创建,修改,执行:存储过程中参数的传递,返回与接收:存储过程的返回值:存储过程使用游标. ...
- Sqlserver中存储过程,触发器,自定义函数
Sqlserver中存储过程,触发器,自定义函数: 1. 触发器:是针对数据库表或数据库的特殊存储过程,在某些行为发生的时候就会被激活 触发器的分类: DML触发器:发生在数据操作语言执行时触发执行的 ...
- JSON序列化及利用SqlServer系统存储过程sp_send_dbmail发送邮件(一)
JSON序列化 http://www.cnblogs.com/yubaolee/p/json_serialize.html 利用SqlServer系统存储过程sp_send_dbmail发送邮件(一) ...
- SqlServer中存储过程中将Exec的执行结果赋值给变量输出
原文 SqlServer中存储过程中将Exec的执行结果赋值给变量输出 背景: 遇到这样一种情况:动态向存储过程中传入表名和表的某些属性(这里用到的是主键ID),然后利用这两个变量查出一条数据的某些字 ...
- SqlServer复杂存储过程
SqlServer复杂存储过程 CREATE PROCEDURE FETCH_GOOUT_INFO AS BEGIN WITH l as(SELECT A.ZJHM, O.KSQR, O.JSRQ, ...
- SQLServer 的存储过程与java交互
一. 存储过程简介 Sql Server的存储过程是一个被命名的存储在服务器上的Transacation-Sql语句集合,是封装重复性工作的一种方法,它支持用户声明的变量.条件执行和其他强大的编程 ...
- SqlServer中存储过程 returnC#代码处理以及对应的MySQL如何改写
一.SqlServer 中 1. 创建表 create table testuser( id int, --primary key, names ), address ), paw ) ) 2.创建存 ...
- SQLServer 中存储过程
SQLServer 中存储过程返回的三种方式( 包括存储过程的创建, 在存储过程中调用, 在VS中调用的方法)存储过程有三种返回: 1. 用return返回数字型数据 2. 用返回参数 ...
- asp.net+Sqlserver 通过存储过程读取数据
Sqlserver代码 创建存储过程如下: /*根据父id获取类别总数*/ IF EXISTS (SELECT name FROM sysobjects WHERE name = N'getsite ...
随机推荐
- NSTimer你真的会用了吗
http://www.cnblogs.com/smileEvday/archive/2012/12/21/NSTimer.html
- C#/winform 旅游管理信息系统
工具:Visual Studio 2015,sql server2014 1.系统概述 该旅游管理信息系统可以为游客和公司业务管理员提供服务.游客可以对旅游路线,旅游班次,旅游团,保险,导游,交通工具 ...
- C# 将XML转换成DataSet【转】
XmlDocument xml = new XmlDocument();xml.LoadXml(str); //str:具有xml格式的字符串 XmlNodeReader reader = new X ...
- ASP.NET 委托,异步调用例子 .
简要介绍:1.定义异步执行需要调用的方法2.定义具有与异步执行方法相同签名的委托(Delegate):3.调用 BeginInvoke 和 EndInvoke 方法. 3.1. BeginInvo ...
- 查询本天气预报Web Services支持的国内外城市或地区信息
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://zhangkui.blog.51cto.com/1796259/497324 本文 ...
- asp:UpdatePanel中js失效问题已解决
1.js function textSAll(o) { o.select(); } var dddd_dd = function () { $(":text").on(" ...
- MVC3学习随记一
最近才接触mvc,也是才接触linq语法,还有EntiyFramework,个人感觉这种开发模式还是挺不错的,随手记点笔记,简单做个增删改查吧 一.实例化上下文ObjectContext: 引用空间那 ...
- 常见Web Service 使用网址
下面的网址是常用Web Service http://www.webxml.com.cn/zh_cn/web_services.aspx 里面的很多Web Service接口...可以用到的,很有用!
- Mongodb集群搭建
搭建高可用Mongodb集群 http://www.lanceyan.com/category/tech/mongodb/page/2 再看MongoDB副本集 http://blog.itpub. ...
- zoj1076 Gene Assembly
这道和zoj1025一样,本质是贪心算法,首先要求任意最长的序列,我们只要保证最长就行,也就是在一幅图中找一个最长的链,首先我们需要根据y排序(输入为x,y),因为y大的肯定在y小的后面,然后就直接贪 ...