存储过程(Stored Procedure)
存储过程(Stored Procedure)
- 存储过程定义
- 存储过程如何使用
- 在SQL Server中创建存储过程
- 调用存储过程
- 删除存储过程
- C#中调用存储过程
- 为什么使用存储过程
存储过程定义
摘自百度百科
存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。在数据量特别庞大的情况下利用存储过程能达到倍速的效率提升。
可以简单理解为存储过程是封装好的一个完成特定功能函数,通过使用存储过程名来执行这个函数。
存储过程如何使用
在SQL Server中创建存储过程
找到数据库-表-可编译性-存储过程-右击新建存储过程。
create proc sp_name
@[参数名] [类型],@[参数名] [类型]
as
begin
.........
end
实例:
CREATE PROCEDURE news_update --存储过程名
--使用到的参数,
@id int,
@title varchar(100),
@content text,
@caid int
AS
BEGIN
--SQL语句UPDATE news
SET title = @title, [content] = @content, caId = @caid
where id = @id END
GO
调用存储过程
存储过程可以在三种环境下被调用:
command命令下,基本语法为:exec sp_name [参数名];
实例:
exec news_update @id=6,@title=abc,@content=def,@caid=13
SQL环境下,基本语法为:call sp_name [参数名];
PL/SQL环境下,基本语法为:begin sp_name [参数名] end;
删除存储过程
drop procedure sp_name
C#中调用存储过程
DAL层代码
SQLHelper类/// <summary>/// 指向带参数的SQL语句或存储过程/// </summary>/// <param name="cmdText">QL语句或存储过程</param>/// <param name="paras">参数集合</param>/// <param name="ct">命令类型</param>/// <returns></returns>public DataTable ExecuteQuery(string cmdText, SqlParameter[] paras, CommandType ct){//初始化 System.Data.DataTable 类的新实例。DataTable dt = new DataTable();//使用查询的文本和 System.Data.SqlClient.SqlConnection 初始化 System.Data.SqlClient.SqlCommand//类的新实例cmd = new SqlCommand(cmdText, GetConn());cmd.CommandType = ct;//在Parameters末尾添加值数组cmd.Parameters.AddRange(paras);//using执行完时释放()中的内容,相应的数据库连接也会关闭using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)){//通过所提供的 System.Data.IDataReader,用某个数据源的值填充 System.Data.DataTable。 如果 System.Data.DataTable// 已经包含行,则从数据源传入的数据与现有行合并。dt.Load(sdr);}//返回查询结果return dt;}
News类/// <summary>/// 取出最新10条新闻(所属分类、新闻标题、发布时间)/// </summary>/// <returns></returns>public DataTable SelectNewNews(){//procNews_SelectNewNews为存储过程名return sqlhelper.ExecuteQuery("procNews_SelectNewNews", CommandType.StoredProcedure);}
为什么使用存储过程
存储过程只在创造时进行编译,以后每次执行存储过程都不需重新编译;而一般SQL语句每执行一次就需要编译一次,所以使用存储过程可提高数据库执行速度;
当对数据库进行复杂操作时(如对多个表进行增删改查),可将这些复杂操作通过存储过程封装起来,避免程序中sql语句过长。
存储过程(Stored Procedure)相关推荐
- oracle 存储过程 stored procedure 查询一条记录或多条记录
创建基本表 -- Create table create table USER_INFORMATION ( P_ID NUMBER, USER_LOGIN_NAME NVARCH ...
- mysql无法创建存储过程(stored procedure
在mysql下 mysql> CREATE PROCEDURE myproc() BEGIN END; 出现: Error Code: 1655 Cannot create stored rou ...
- JAVA→JDBCJava DataBase Connectivity、存储过程Stored Procedure、事务Transaction、连接池DBCP C3P0、JDBC升级替代框架
致虚极,守静笃. 万物并作,吾以观其复. 夫物芸芸,各复归其根. 归根曰静,是谓复命. 复命曰常,知常曰明. 不知常,妄作凶. 知常容,容乃公,公乃全,全乃天,天乃道,道乃久,没身不殆. ----&l ...
- Stored Procedure 里的 WITH RECOMPILE 到底是干麻的?
Stored Procedure 里的 WITH RECOMPILE 到底是干麻的? 原文:Stored Procedure 里的 WITH RECOMPILE 到底是干麻的? 在 SQL Serve ...
- JDBC连接执行mysql存储过程报权限错误:User does not have access to metadata required to determine stored procedure
项目场景: mysql创建数据加工流程,使用dophinscheduler定时调度运行项目. 问题描述 运行报错:java.sql.SQLException:User does not have ac ...
- SQL存储过程(Stored Procedure)
SQL存储过程(Stored Procedure) 什么是存储过程? 存储过程(procedure)类似于C语言中的函数 用来执行管理任务或应用复杂的业务规则 存储过程可以带参数,也可以返回结果 存储 ...
- MySQL 存储过程(Stored Procedure)
MySQL 5.0 版本开始支持存储过程. 存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象. 存储过程是为了完成特定功能的SQL语句集,经编 ...
- SQLSERVER使用CLR Stored Procedure导出数据到Excel
在实际应用中,我们经常需要导出数据到Excel文件,你可以使用DTS或SSIS来做.但有时,我们并不需要这么重量级的工具,直接用CLR SP实现就可以了. 假设你已经写好了导出Excel的C# cod ...
- Dnn中常见的一个错误及可能原因:Could not find stored procedure 'dbo.GetPortals'
Could not find stored procedure 'dbo.GetPortals' 错误的 {objectqualifier}. 数据库的版本保存在dnn.config 中,assemb ...
- Springboot mysql访问异常:User does not have access to metadata required to determine stored procedure
错误信息: User does not have access to metadata required to determine stored procedure parameter types. ...
最新文章
- 小米造车150天:烈火烹油第一枪
- 2011阿里巴巴集团实习生招聘笔试题 CC++
- 搭建一个VUE+Express前后端分离的开发环境
- 全志A33-串口的使用
- C语言编程出图形,C语言画出各种图形
- MIP ACCESS细节剖析
- 湖南省普通招生2021高考成绩查询,湖南省2021八省联考成绩可查,附查询入口及往年分数线...
- Python爬取Boss直聘,帮你获取全国各类职业薪酬榜
- 【转载】 vs2005视频教程 之 抽象类和接口 四 [视频]
- AcWing 802. 区间和
- paip.技术重要还是管理重要还是创意重要
- Arcgis中的空间插值
- 怎么用spss做冗余分析_利用SPSS进行相关分析(第八章)概述.ppt
- 固定IP和自动IP切换bat脚本
- 什么是Subscript?
- 曾经觉得学习晦涩难懂的我是如何爱上linux
- 企业为什么要绘制用户画像?谈谈用户画像的真正作用
- 1108 String复读机
- Java WEB开发须知知识点---概况篇
- 博文视点官方博客http://blog.csdn.net/bvbook
热门文章
- 【装机】将mbr硬盘转换为gpt
- 单片机点亮LCD1602A液晶屏
- 警告:integer division in floating-point context
- 姿态估计1-03:FSA-Net(头部姿态估算)-白话给你讲论文-翻译无死角(1)
- 一个JSP页面打开另外一个JSP页面并传值
- FFmpeg —— 13.示例程序(七):视频编码器(YUV编码为H265)
- 抖音上用计算机算66,抖音年龄计算器
- 操作系统引导程序顺序
- 无限战争选择服务器,无限战争新手攻略 新手入门必看技巧
- 服务器网卡信息BIOS中设置,bios设置如何关闭网卡