这篇文章主要介绍了SQLServer2008下存储过程实现数据插入与更新,需要的朋友可以参考下

存储过程的功能非常强大,在某种程度上甚至可以替代业务逻辑层,

接下来就一个小例子来说明,用存储过程插入或更新语句。

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中情况,而且效率很高,使用灵活。 希望对大家有所帮助。

最新资讯
分析师预计特斯拉二季度交付约70000辆电动汽车

分析师预计特斯拉二季

对于二季度,托尼·萨柯纳吉表示这对特斯拉来说是非常艰
美国打压华为致3nm工艺延期半年?台积电:一切正常

美国打压华为致3nm工

此前有传闻称台积电因此延期先进制程工艺,其中3nm延期
神州租车大涨20% 接盘方北汽集团图什么?

神州租车大涨20% 接盘

易主只是时间问题。
北汽接盘陆正耀将完全退出 神州租车涨超20%

北汽接盘陆正耀将完全

神州租车涨超20%。截止发稿,神州租车涨幅达22.22%,报2.2
国际空间站迎新访客:SpaceX龙飞船每一步都在创造历史

国际空间站迎新访客:S

龙飞船是历史上第一艘商业载人飞船,因此,它从昨日升空那
北汽拟收购神州租车21%股份!陆正耀或将全面退出

北汽拟收购神州租车21

港交所权益披露页显示,截至5月11日,陆正耀及其一致行动
最新文章
SQL Server 2008数据库分布式查询知识

SQL Server 2008数据

今天小编就为大家分享一篇关于SQL Server 2008数据库
SQL Server 2008数据库设置定期自动备份的方法

SQL Server 2008数据

这篇文章主要给大家介绍了关于SQL Server 2008数据库
sqlserver2008首次登录失败问题及解决方法

sqlserver2008首次登

这篇文章主要介绍了sqlserver2008首次登录失败问题及
解决SQL Server 2008 不能使用 “.” local本地连接数据库问题

解决SQL Server 2008

这篇文章主要介绍了解决SQL Server 2008 不能使用 “.
SQL SERVER 2008 r2 数据压缩的两种方法

SQL SERVER 2008 r2

这篇文章主要介绍了SQL SERVER 2008 r2 数据压缩的两
SQL Server 2008打开输入sa密码提示无法登陆数据库的解决方法

SQL Server 2008打开

与 SQL Server建立连接时出现与网络相关的或特定于实