SQL数据库存储过程
添加修改
create PROCEDURE sp_insert_1(
pid int,
pname varchar(200),
page varchar(200),
pscore int,
out code int,
out msg varchar(200)
)
lb:BEGIN
DECLARE t_error int DEFAULT 0;
DECLARE CONTINUE HANDLER for SQLEXCEPTION set t_error=1;
start TRANSACTION;
IF pid=0
THEN /*添加*/
set @exist=(select count(*) from studentweek3 where name =pname);
IF @exist>0 THEN/*存在*/
set code=1;set msg='用户名已存在';
ROLLBACK;LEAVE lb;
ELSE/*不存在*/
insert into studentweek3(name,age,score) values(pname,page,pscore);
END IF;
ELSE/*修改*/
update studentweek3 set name=pname,age=page,score=pscore where id=pid;
END IF;
/*错误判断*/
IF t_error=1 THEN set code=1;set msg='保存失败';ROLLBACK;
ELSE
set code=0;set msg='保存成功';COMMIT;
END IF;
END
分页
create PROCEDURE sp_pager(pageindex int,pagesize int,out pagecount int,out datacount int,name varchar(50),sex varchar(50),xuehao int)
BEGIN
set @pageindex=pageindex;
set @pagesize=pagesize;
set @pagecount=0;
set @datacount=0;
set @name=name;
set @sex=sex;
set @xuehao=xuehao;
/*分页sql*/
set @pagesql=concat(
"select * from student where 1=1 ",
if(@name='','',concat(' and name like "%',@name,'%" ')),
if(@sex='','',concat(' and sex="',@sex,'"')),
if(@xuehao=0,'',concat(' and id="',@xuehao,'"')),
' limit ',(@pageindex-1)*@pagesize,',',@pagesize,''
);
PREPARE s1 from @pagesql;
EXECUTE s1;/*执行分页查询*/
/*数据总数输出变量*/
set @countSql=concat('set @datacount=(select count(*) from student where 1=1 ',
if(@name='','',concat(' and name like "%',@name,'%" ')),
if(@sex='','',concat(' and sex="',@sex,'"')),
if(@xuehao=0,'',concat(' and id="',@xuehao,'"')),
')');
PREPARE s2 from @countsql;
EXECUTE s2;
set datacount=@datacount;/*数据总数输出参数赋值*/
/*页总数输出变量赋值*/
set @pagecount=CEIL(@datacount*1.0/@pagesize);
set pagecount=@pagecount;/*赋值输出变量页面总数*/
END
SQL数据库存储过程的更多相关文章
- 我的sql数据库存储过程分页- -
以前用到数据库存储过程分页的时候都是用 not in 但是最近工作的时候,随着数据库记录的不断增大,发现not in的效率 真的不行 虽然都设置了索引,但是当记录达到10w的时候就发现不行了,都是需要 ...
- SQL 数据库 存储过程 视图
一.存储过程 1.概述 存储过程是一组编译在单个执行计划中的T-SQL语句 存储过程:就像函数一样的会保存在数据库中(可编程性) 存储过程的优点: 1.允许模块化程序设计 2.允许更快执行如果某操作需 ...
- 在易语言中调用MS SQL SERVER数据库存储过程方法总结
Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接返回(return)一个值,通过output ...
- 存储过程系列之存储过程sql数据库调用和程序代码调用
1.存储过程,无参数的存储过程 创建无参数存储存储过程 Create Procedure DCEMREMR_TEMPLATEAs SELECT TOP 10 [FILENAME],[FILETITLE ...
- 数据库存储过程 — Sql Server
Mysql.Oracle等主流关系型数据库基本都支持存储过程,这里使用Sql Server为例进行说明. 存储过程的概念: Sql Server存储过程 SQL Server 中的存储过程是由一个或多 ...
- MS SQL 中判断 数据库, 存储过程,表,临时表,视图,函数,用户,用户创建对象 等是否存在 SQL脚本
摘自: http://www.111cn.net/database/mssqlserver/39107.htm sql判断存储过程是否存在 判断数据库教程是否存在 Sql代码 if exists (s ...
- SQL数据库问题 解释一下下面的代码 sql 存储过程学习
SQL数据库问题 解释一下下面的代码 2008-08-13 11:30wssqyl2000 | 分类:数据库DB | 浏览1154次 use mastergocreate proc killspid( ...
- SQL Server数据库存储过程的异常处理
SQL Server数据库存储过程的异常处理是非常重要的,明确的异常提示能够帮助我们快速地找到问题的根源,节省很多时间.本文我们就以一个插入数据为例来说明SQL Server中的存储过程怎么捕获异常的 ...
- sql server 存储过程 以及java如何使用存储过程
Sql 语句 有一个test_table1表 他有两个字段 ID 和name proc是procedure的缩写 也就是存储过程,StuProc2为创建的存储过程名称 执行以下创建存储后会在Sql ...
随机推荐
- Django----From组件
Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 1.创建Form类 from django.f ...
- MySQL之多表查询一 介绍 二 多表连接查询 三 符合条件连接查询 四 子查询 五 综合练习
MySQL之多表查询 阅读目录 一 介绍 二 多表连接查询 三 符合条件连接查询 四 子查询 五 综合练习 一 介绍 本节主题 多表连接查询 复合条件连接查询 子查询 首先说一下,我们写项目一般都会建 ...
- {MySQL数据库初识}一 数据库概述 二 MySQL介绍 三 MySQL的下载安装、简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 初识sql语句
MySQL数据库初识 MySQL数据库 本节目录 一 数据库概述 二 MySQL介绍 三 MySQL的下载安装.简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 ...
- ubuntu下hadoop0.20.2报错/dfs/name is in an inconsistent state
Hadoop0.20.2在关机重启后,namenode启动报错: 用bin/hadoop namenode -format重新格式化一下就好了.这个问题已经出现了两次.每次都格式化,显然不是一个专业的 ...
- iOS 精简Controlelr代码的两个方法
MVC是苹果推荐使用的iOS APP架构.后来又有MVVM,MVP等架构出现.主要目的是让业务逻辑.展示.数据各个层级解耦.实现最大程度上的代码复用. 对MVC这种架构来说,随着APP中模的增多,控制 ...
- hung_task_timeout_secs和blocked for more than 120 seconds的解决方法
Linux系统出现hung_task_timeout_secs和blocked for more than 120 seconds的解决方法 Linux系统出现系统没有响应. 在/var/log/me ...
- nginx的proxy_pass路径转发规则浅析(末尾/问题)
源地址 : https://www.zifangsky.cn/917.html 一 location匹配路径末尾没有 / 此时proxy_pass后面的路径必须拼接location的路径: 1 2 ...
- Linear transformations. 线性变换与矩阵的关系
0.2.2 Linear transformations. Let U be an n-dimensional vector space and let V be an m-dimensional v ...
- Chap4:区块链的应用技术[《区块链中文词典》维京&甲子]
- Chrome中安装Firebug插件
Chrome中的Firebug插件:Firebug Lite 1.Firebug Lite下载:http://chromecj.com/web-development/2015-05/471/down ...