浅入浅出存储过程

来源:互联网 发布:spss20 mac 安装教程 编辑:程序博客网 时间:2024/06/05 14:08

在合作开发前还是把在做牛腩发布系统过程中, 复习到的数据库的知识,,曾经单粒的沙子打包进去好 。所以把存储过程入包.。

简单的来说存储过程,就是一个sql语句的结合,存储过程和sql语句没有区别,就是把多条sql语句封装起来了,成为我们程序中独立功能模块。

百度百科是这样说的,很是专业和全面:http://baike.baidu.com/view/68525.htm 所以就不赘述了。

为什么使用存储过程?因为比sql语句执行的速度快。为什么叫存储过程?存储的是一些sql的罗列,是依次执行多个sql语句的过程。

如何创建存储过程?

创建存储过程实例。

语法为:

CREATE PROCedure[owner.]procedure_name[;number][(parameter1[,parameter2]...[parameter255])][{FOR REPLICATION}|{WITH RECOMPILE}[{[WITH]|{,}ENCRYPTION]]AS sql_statements
实例。

-- =============================================-- Author:HaiFang-- Create date: 2012-7-19-- Description:根据内容搜索新闻。-- =============================================ALTER PROCEDURE [dbo].[news_selectByContent] @content varchar(1000)ASBEGINselect top 10 n.id,n.title ,n.createTime,c.[name] from news ninner join category c on n.caId =c.id --查询的内容。where n.content like '%' + @content  + '%'order by n.createTime desc END

其他的编程语言如何调用存储过程? 把sql语句的名字换成存储过程的名字。

带参数的存储过程,更方便的查询。在asp.net中调用带参数的存储过程。

 // 根据新闻类别的caId取出该类别下的所有新闻。        public DataTable SelectBycaId(string caId)        {            DataTable dt = new DataTable();            //传递存储过程中的参数.            string procName = "news_selectById";            SqlParameter[] paras = new SqlParameter[] { new SqlParameter("@caid", caId) };            dt = sqlhelper.ExecuteQuery(procName, paras, CommandType.StoredProcedure);            return dt;        }


存储过程的优点是:

1.在执行重复任务时能提高效率;

2.使前端的应用程序共享应用逻辑;

3.可以永久创建,也可以临时创建;

4.可以在SQL Server启动时自动执行。


在对表的级联操作中,触发器和存储过程都可以使用的。

我想很多人都会有这样的感觉,在看第一遍专业的文字我们往往是充满恐惧的,因为我们对未知陌生是恐惧的。虽然被专业文字的准确 生动 形象所折服, 但往往是被他吓倒,要想看懂专业文字方法有 :一是多看它几遍不一定懂,只要熟悉就好,二是仔细看的时候要把专业的"文言文"翻译成自己的"白话文", 这样才是忘不掉的,变成自己的才是忘不掉的. 

原创粉丝点击