SQLServer用存储过程实现插入更新数据

实现

1)有同样的数据,直接返回(返回值:0)。

2)有主键同样。可是数据不同的数据。进行更新处理(返回值:2);

3)没有数据,进行插入数据处理(返回值:1)。


【创建存储过程】

Create proc Insert_Update  

 
@Id varchar(20),  
 
@Name varchar(20),  
 
@Telephone varchar(20),  
 
@Address varchar(20),  


@Job varchar(20), 
 
@returnValue int output  
 
as  
 
declare  
 
@tmpName varchar(20),  
 
@tmpTelephone varchar(20),


@tmpJob varchar(20),
 
@tmpAddress varchar(20)
 
if exists(select * from dbo.DemoData where id=@Id)  
 
begin  
 
select @tmpName=Name,@tmpTelephone=Telephone,@tmpAddress=Address,@tmpJob=Job from dbo.DemoData where id=@Id  
 
if ((@tmpName=@Name) and (@tmpTelephone=@Telephone) and (@tmpAddress=@Address)and (@tmpJob=@Job))  
 
begin  
 
set @returnValue=0 --有同样的数据,直接返回值  
 
end  
 
else  
 
begin  
 
update dbo.DemoData set Name=@Name,Telephone=@Telephone,Address=@Address,Job=@Job where id=@Id  
 
set @returnValue=2 --有主键同样的数据,进行更新处理  
 
end  
 
end  
 
else  
 
begin  
 
insert into dbo.DemoData values(@Id,@Name,@Telephone,@Address,@Job)  
 
set @returnValue=1 --没有同样的数据,进行插入处理  
 
end 


【运行方式】

declare @returnValue int   
exec Insert_Update '15','hugh15','3823345','长安街','副部长',@returnValue output  
select @returnValue


返回值0,已经存在同样的

返回值1,插入成功

返回值2,更新成功


转载于:https://www.cnblogs.com/ldxsuanfa/p/10053666.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/250114.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[pytorch、学习] - 9.1 图像增广

参考 9.1 图像增广 在5.6节(深度卷积神经网络)里我们提过,大规模数据集是成功应用神经网络的前提。图像增广(image augmentation)技术通过对训练图像做一系列随机改变,来产生相似但又不相同的训练样本,从而扩大训练数据集的规模。图像增广的另一种解释是,随机改变训练样本可以…

mysql绿色版安装

导读:MySQL是一款关系型数据库产品,官网给出了两种安装包格式:MSI和ZIP。MSI格式是图形界面安装方式,基本只需下一步即可,这篇文章主要介绍ZIP格式的安装过程。ZIP Archive版是免安装的。只要解压就行了。 一、首先下…

在微信浏览器字体被调大导致页面错乱的解决办法

iOS的解决方案是覆盖掉微信的样式: body { /* IOS禁止微信调整字体大小 */-webkit-text-size-adjust: 100% !important; } 安卓的解决方案是通过 WeixinJSBridge 对象将网页的字体大小设置为默认大小,并且重写设置字体大小的方法,让用户不能在…

[pytorch、学习] - 9.2 微调

参考 9.2 微调 在前面得一些章节中,我们介绍了如何在只有6万张图像的Fashion-MNIST训练数据集上训练模型。我们还描述了学术界当下使用最广泛规模图像数据集ImageNet,它有超过1000万的图像和1000类的物体。然而,我们平常接触到数据集的规模通常在这两者之间。 假设我们想从图…

Springboot默认加载application.yml原理

Springboot默认加载application.yml原理以及扩展 SpringApplication.run(…)默认会加载classpath下的application.yml或application.properties配置文件。公司要求搭建的框架默认加载一套默认的配置文件demo.properties,让开发人员实现“零”配置开发,但…

java 集合(Set接口)

Set接口:无序集合,不允许有重复值,允许有null值 存入与取出的顺序有可能不一致 HashSet:具有set集合的基本特性,不允许重复值,允许null值 底层实现是哈希表结构 初始容量为16 保存自定义对象时,保证数据的唯…

关于mac机抓包的几点基础知识

1. 我使用的抓包工具为WireShark,以下操作按我当前的版本(Version 2.6.1)做的,以前的版本或者以后的版本可能有稍微的区别。 2. 将mac设置为热点:打开系统偏好设置,点击共享: 然后点击WIFI选项,设置WIFI名…

SpringBoot启动如何加载application.yml配置文件

一、前言 在spring时代配置文件的加载都是通过web.xml配置加载的(Servlet3.0之前)&#xff0c;可能配置方式有所不同&#xff0c;但是大多数都是通过指定路径的文件名的形式去告诉spring该加载哪个文件&#xff1b; <context-param><param-name>contextConfigLocat…

[github] - git使用小结(分支拉取、版本回退)

1. 首次(fork项目之后) $ git clone [master] $ git branch -a $ git checkout -b [自己的分支名] [远程仓库的分支名]克隆的是主干网络 2. 再次拉取代码 $ git pull [master下选择分支名] [分支名] $ git push origin HEAD:[分支名]拉取首先得进入主仓(不是自己的远程仓)然后…

MYSQL 查看最大连接数和修改最大连接数

MySQL查看最大连接数和修改最大连接数 1、查看最大连接数show variables like %max_connections%;2、修改最大连接数set GLOBAL max_connections 200; 以下的文章主要是向大家介绍的是MySQL最大连接数的修改&#xff0c;我们大家都知道MySQL最大连接数的默认值是100, 这个数值…

阿里云服务器端口开放对外访问权限

登陆阿里云管理控制台 点击自己的实例 点击安全组配置 点击配置规则 点击添加安全组规则 配置出入放心&#xff0c;和开放的端口号&#xff0c;以及那些网段可以访问&#xff0c;这里设置所有网段都可以访问 转自&#xff1a;https://jingyan.baidu.com/article/95c9d20d624d1e…

PageHelper工作原理

数据分页功能是我们软件系统中必备的功能&#xff0c;在持久层使用mybatis的情况下&#xff0c;pageHelper来实现后台分页则是我们常用的一个选择&#xff0c;所以本文专门类介绍下。 PageHelper原理 相关依赖 <dependency><groupId>org.mybatis</groupId>&…

10-多写一个@Autowired导致程序崩了

再是javaweb实验六中&#xff0c;是让我们改代码&#xff0c;让它跑起来&#xff0c;结果我少注释了一个&#xff0c;导致一直报错&#xff0c;检查许久没有找到&#xff0c;最后通过代码替换逐步查找&#xff0c;才发现问题。 转载于:https://www.cnblogs.com/zhumengdexiaoba…

Java class不分32位和64位

1、32位JDK编译的java class在32位系统和64位系统下都可以运行&#xff0c;64位系统兼容32位程序&#xff0c;可以理解。2、无论是Linux还是Windows平台下的JDK编译的java class在Linux、Windows平台下通用&#xff0c;Java跨平台特性。3、64位JDK编译的java class在32位的系统…

包装对象

原文地址&#xff1a;https://wangdoc.com/javascript/ 定义 对象是JavaScript语言最主要的数据类型&#xff0c;三种原始类型的值--数值、字符串、布尔值--在一定条件下&#xff0c;也会自动转为对象&#xff0c;也就是原始类型的包装对象。所谓包装对象&#xff0c;就是分别与…

[C++] 转义序列

参考 C Primer(第5版)P36 名称转义序列换行符\n横向制表符\t报警(响铃)符\a纵向制表符\v退格符\b双引号"反斜杠\问号?单引号’回车符\r进纸符\f

vue使用(二)

本节目标&#xff1a; 1.数据路径的三种方式 2.{{}}和v-html的区别 1.绑定图片的路径 方法一&#xff1a;直接写路径 <img src"http://pic.baike.soso.com/p/20140109/20140109142534-188809525.jpg"> 方法二&#xff1a;在data中写路径&#xff0c;在…

typedef 为类型取别名

#include <stdio.h> int main() {   typedef int myint; // 为int 类型取自己想要的名字   myint a 10;   printf("%d", a);   return 0;} 其他类型的用法也是一样的 typedef 类型 自己想要取得名字; 转载于:https://www.cnblogs.com/hello-dummy/p/9…

【C++】如何提高Cache的命中率,示例

参考链接 https://stackoverflow.com/questions/16699247/what-is-a-cache-friendly-code 只是堆积&#xff1a;缓存不友好与缓存友好代码的典型例子是矩阵乘法的“缓存阻塞”。 朴素矩阵乘法看起来像 for(i0;i<N;i) {for(j0;j<N;j) {dest[i][j] 0;for( k;k<N;i)…

springboot---整合redis

pom.xml新增 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>代码结构如下 其中redis.yml是连接redis的配置文件&#xff0c;RedisConfig.java是java配置…