SQLServer2008存储过程实现数据插入与更新
作者:mdxy-dxy 发布时间:2024-01-19 06:01:21
标签:存储过程,添加数据,更新
存储过程的功能非常强大,在某种程度上甚至可以替代业务逻辑层,
接下来就一个小例子来说明,用存储过程插入或更新语句。
1、数据库表结构
所用数据库为Sql Server2008。
2、创建存储过程
(1)实现功能:1)有相同的数据,直接返回(返回值:0);
2)有主键相同,但是数据不同的数据,进行更新处理(返回值:2);
3)没有数据,进行插入数据处理(返回值:1)。
根据不同的情况设置存储过程的返回值,调用存储过程的时候,根据不同的返回值,进行相关的处理。
(2)下面编码只是实现的基本的功能,具体的Sql代码如下:
Create proc sp_Insert_Student
@No char(10),
@Name varchar(20),
@Sex char(2),
@Age int,
@rtn int output
as
declare
@tmpName varchar(20),
@tmpSex char(2),
@tmpAge int
if exists(select * from Student where No=@No)
begin
select @tmpName=Name,@tmpSex=Sex,@tmpAge=Age from Student where No=@No
if ((@tmpName=@Name) and (@tmpSex=@Sex) and (@tmpAge=@Age))
begin
set @rtn=0 --有相同的数据,直接返回值
end
else
begin
update Student set Name=@Name,Sex=@Sex,Age=@Age where No=@No
set @rtn=2 --有主键相同的数据,进行更新处理
end
end
else
begin
insert into Student values(@No,@Name,@Sex,@Age)
set @rtn=1 --没有相同的数据,进行插入处理
end
3、调用存储过程
这里在Sql Server环境中简单的实现了调用,在程序中调用也很方便。
具体的代码如下:
declare @rtn int
exec sp_Insert_Student '1101','张三','男',23,@rtn output
if @rtn=0
print '已经存在相同的。'
else if @rtn=1
print '插入成功。'
else
print '更新成功'
一个存储过程就实现了3中情况,而且效率很高,使用灵活。 希望对大家有所帮助。
来源:https://blog.csdn.net/u011966339/article/details/79373035
0
投稿
猜你喜欢
- ASP是目前一种广为应用的用来快速构建动态WEB站点的编程语言,默认的内置开发语言是VBScript,由于ASP和微软Windows系列操作
- 基于python 3.5,python 2.7 与python3.4 的urllib不同,是urlparse>>> fro
- 一、自定义函数:1. 可以返回表变量2. 限制颇多,包括不能使用output参数;不能用临时表;函数内部的操作不能影响到外部环境;不能通过s
- 概述I/O操作不仅包括屏幕输入输出,还包括文件的读取与写入,Python提供了很多必要的方法和功能,进行文件及文件夹的相关操作。本文主要通过
- 1.汇率换算程序案例描述设计一个汇率换算器程序,其功能是将外币换算成人民币,或者相反案例分析分析问题:分析问题的计算部分;确定问题:将问题划
- 01 ReplicaSet的架构 前面的文章中,我们说了ReplicaSet的基本概念和限制以及部署前的基本知识。
- 大家好,我是海拥,在今天的博客中,我们将讨论 Python 中简化代码的技巧。我清楚地记得当我选择学习 python 时,最令我震惊的是它的
- 前言订单并发这个问题我想大家都是有一定认识的,这里我说一下我的一些浅见,我会尽可能的让大家了解如何解决这类问题。在解释如何解决订单并发问题之
- python,pycharm的环境变量设置官网下载安装python解释器时,如果忘记勾选添加到环境变量[add to path],可进行如下
- AlexNet介绍AlexNet是2012年ISLVRC 2012(ImageNet Large Scale Visual Recognit
- 由于这个数据库服务器存放的数据库比较多且都是小数据库,所以最初的时候是运行在windows服务器上的。前一段时间由于机房服务器要做调整,于是
- 本文较为详细的分析了python内存管理机制。分享给大家供大家参考。具体分析如下:内存管理,对于Python这样的动态语言,是至关重要的一部
- 围绕文字、符号、链接三个方面,主要是中文,草拟的个人行文经验:1. 文字避免写错。应付挑剔的读者是一个方面,某些关键词的错误,有可能就避过了
- 经常看到有人在网上询问关于imread()函数读取图片失败的问题。今天心血来潮,经过实验,总结出imread()调用的四种正确姿势。通常我要
- 不同类型的语言支持不同的数据类型,比如 Go 有 int32、int64、uint32、uint64 等不同的数据类型,这些类型占用的字节大
- 目录一、axis简介二、不一样的axis对于axis=0三、总结补充:python中某些函数axis参数的理解在我们使用Python中的Nu
- 需求:我要查询百度域名的到期时间或者开始时间思路分析:如果在linux系统中直接使用下面命令即可:echo | openssl s_clie
- Python进程池是Python标准库中multiprocessing模块提供的一种用于管理进程的方式。它可以使Python程序以并行的方式
- 本文实例为大家分享了python SMTP发送带附件电子邮件的具体代码,供大家参考,具体内容如下可采用email模块发送电子邮件附件。发送一
- 本文实例讲述了python实现string和dict的相互转换方法。分享给大家供大家参考,具体如下:字典(dict)转为字符串(string