• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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中情况,而且效率很高,使用灵活。 希望对大家有所帮助。

    您可能感兴趣的文章:
    • SQL Server 批量插入数据的完美解决方案
    • Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例
    • SQLServer中防止并发插入重复数据的方法详解
    • 详解C#批量插入数据到Sqlserver中的四种方式
    • SQL Server批量插入数据案例详解
    上一篇:解决SQL Server 2008 不能使用 “.” local本地连接数据库问题
    下一篇:SQL Server 2008数据库设置定期自动备份的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    SQLServer2008存储过程实现数据插入与更新 SQLServer2008,存储,过程,实现,