如何在存储过程中实现插入更新数据

简介:

存储过程的功能非常强大,在某种程度上甚至可以替代业务逻辑层,接下来就一个小例子来说明,用存储过程插入或更新语句。
  1、数据库表结构

  所用数据库为Sql Server2008。

  2、创建存储过程

  (1)实现功能:

  有相同的数据,直接返回(返回值:0);

  有主键相同,但是数据不同的数据,进行更新处理(返回值:2);

  没有数据,进行插入数据处理(返回值: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中情况,而且效率很高,使用灵活。希望对大家有所帮助。

  在成长学习的过程中,我会不断发一些自己的心得体会,和大家共享。

本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/

目录
相关文章
|
7月前
|
关系型数据库 MySQL 数据库
在MySQL数据库中插入、更新与删除数据
在MySQL数据库中插入、更新与删除数据。
62 2
|
4月前
|
SQL 数据库
SQL INSERT INTO 语句详解:插入新记录、多行插入和自增字段
SQL INSERT INTO 语句用于在表中插入新记录。
211 0
|
7月前
|
SQL 数据库 C语言
使用SQL语句实现数据插入、修改和删除操作
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句实现数据插入、修改和删除操作。
391 0
|
7月前
数据更新语句INSERT语句、UPDATE语句、DELETE语句等,用于向数据表中插入、更新或删除数据。示例
数据更新语句INSERT语句、UPDATE语句、DELETE语句等,用于向数据表中插入、更新或删除数据。示例
55 1
|
SQL 数据库
DML 添加、修改、删除数据
DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改操作。
171 0
|
关系型数据库 MySQL 数据库
MySQL数据库:创建一个表,并执行插入、修改和删除数据操作
MySQL数据库:创建一个表,并执行插入、修改和删除数据操作
216 0
MySQL数据库:创建一个表,并执行插入、修改和删除数据操作
|
数据库 数据安全/隐私保护
批量插入【对新数据进行插入操作,已存在的记录进行更新操作】
批量插入【对新数据进行插入操作,已存在的记录进行更新操作】
124 0
批量插入【对新数据进行插入操作,已存在的记录进行更新操作】
|
SQL 安全 数据库
如何向表中插入数据以及如何更新、删除表中的数据
1. 插入 INSERT 用来将行插入到数据库表中。插入有几种方式: 插入完整的行。 插入行的一部分。 插入某些查询的结果。 INSERT 语法要求指定表名和插入到新表中的值。例如,我们将一个新顾客插入到 customers 表中。 插入前: INSERT INTO Customers VALUES('1000000006', 'Toy Land', '123 Any Street', 'New York', 'NY', '11111', 'USA', 'Jordan', 'Jordan@gmail.com'); 运行结果如下: 插入到新表中的值由 VALUES 子
123 0
|
SQL 存储 关系型数据库
MySQL数据库基本操作-DML——插入数据;删除数据;更新数据
MySQL数据库基本操作-DML——插入数据;删除数据;更新数据
247 0
MySQL数据库基本操作-DML——插入数据;删除数据;更新数据
使用存储过程批量更新单表中的数据
使用存储过程批量更新单表中的数据