设为首页 加入收藏

TOP

存储过程――【牛腩新闻发布系统】
2015-07-24 11:13:18 来源: 作者: 【 】 浏览:3
Tags:存储 过程 牛腩 新闻 发布 系统

?

一、什么是存储过程?

定义:

  存储过程(Stored Procedure)是在大型数据库中,将常用的或复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来,一次编译后再次调用不需要编译,用户通过指定存储过程的名字并给出参数来执行。

分类:

系统存储过程:sp_开头

扩展存储过程:xp_开头

用户自定义存储过程:

推荐命名语法:[proc] [MainTableName] By [FieldName(optional)] [Action]

前缀必须有proc ,存储过程访问的对象,可选字段名是条件子句,最后的动词是执行的任务。例子:procClientRateSelect

注意:不推荐命名为sp_为前缀,因为这样SQL Server会首先查找系统存储过程,会导致运行缓慢

二、一般SQL语句与存储过程的区别

1.提高性能,存储过程只需编译一次,一般SQL执行一次编译一次,可以提高数据库执行速度。

2.封装特性,可以将复杂的数据库操作(增、删、改、查)用存储过程封装起来,与数据库提供的事务结合。

3.可重复使用,减少数据库开发人员工作量。

4.安全性高,只有设定的用户具有存储过程使用权。

三、存储过程实例

1.SQLHelper调用存储过程

?

 public DataTable test(string procName)
        {
            DataTable dt = new DataTable();
            cmd = new SqlCommand(procName, GetConn());
            cmd.CommandType  = CommandType.StoredProcedure;
            using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
            {
                dt.Load(sdr);
            }
            return dt;
        }

主要是把 command命令里面的procName赋值为存储过程名,把cmd.CommandType赋值为CommandType.StoredProcedure即可。

?

2.存储过程的书写:

?

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		王美
-- Create date: 2015年2月6日23:11:35
-- Description:	取出最新10条新闻(所属分类,新闻标题)
-- =============================================
CREATE PROCEDURE procNewsSelectNewNews 
	-- Add the parameters for the stored procedure here

AS
BEGIN
---选择最上面的10条
	select top 10 n.id,n.title ,n.createTime ,c.[name]  from news n
	----类别表的id=新闻表里面的id,内连接
	inner join category c on n.caId=c.id 
	order by n.createTime desc---降序排列
END
GO

exec procNewsSelectNewNews

?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇kettle中使用javascript步骤和fir.. 下一篇atitit查询表修改表字段没反应--..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·用 C 语言或者限制使 (2025-12-25 08:50:05)
·C++构造shared_ptr为 (2025-12-25 08:50:01)
·既然引用计数在做 GC (2025-12-25 08:49:59)
·Java 编程和 c 语言 (2025-12-25 08:19:48)
·. net内存管理宝典这 (2025-12-25 08:19:46)