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
SQLServer用存储过程实现插入更新数据相关推荐
- kettle 插入更新 数据增量_kettle基于时间戳增量更新
思路1: 1.提前建好ts时间表,设置两个字段分别为current_t和load_t,current用于比较原表中日期的上限,load_t则为上次加载的日期,几位原表中日期的下限. 1 create ...
- 向mysql表中插入/更新数据时自动添加创建时间/更新时间
目录 处理方式一:修改数据库字段类型 测试插入数据: 测试更新数据: 处理方式二:配置生成策略 [MySQL版本] 8.x 处理方式一:修改数据库字段类型 自动添加创建时间: 将字段类型设置为TIME ...
- kettle 插入更新 数据增量_使用Kettle实现数据实时增量同步
2018-09-28: 示例job已上传至github,地址见文末 0. 前言 本文介绍了使用Kettle对一张业务表数据(500万条数据以上)进行实时(10秒)同步,采用了时间戳增量回滚同步的方法. ...
- sqlserver 自增ID插入指定数据
set identity_insert 表名 ON --允许对自增列Id插入指定数据 insert into table_name(Id,Name) values(1,'test') set iden ...
- 关于redo(二)插入更新数据时的效率比较
继续昨天的问题.我曾经面对一个工作,要把一张很大的表中,3个月前的数据删掉,转储到历史表中.这将是一个很大的工程,需要在一周内完成,而且只能在夜里进行工作.这就需要考虑到性能问题了,考虑到网上很多人说 ...
- Navicat通过存储过程批量插入mysql数据
场景 有时需要做测试,要向数据库中插入一些测试数据,成百上千条,这时候通过存储过程就可以做到. 实现 打开Navicat,找到上面函数,点击函数 点击新建函数 选择类型为过程 输入名字和参数 点击完成 ...
- mysql bulk update_使用SqlBulkCopy批量插入/更新数据
usingSystem;usingSystem.Collections.Generic;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem. ...
- plsql 存储过程 批量提交_Oracle 存储过程批量插入数据
oracle 存储过程批量插入大量数据 declare numCount number; userName varchar2(512); email varchar2(512); markCommen ...
- sqlserver数据库同步更新数据到mysql数据库,利用ODBC
项目要求SQLSERVER数据库增加数据的时候同步数据到mysql数据库. 这里用到了存储过程与触发器的混合使用. 因为要同步到MySQL数据库所以首先下载MySQL的ODBC驱动 ↓ https:/ ...
最新文章
- Ecshop与Jquery冲突的完美解决方案(实践过,有效)
- 三级火箭力助搜狗快速盈利
- Puppet SaltStack Chef Ansible
- redis服务器防止入侵,加ip,密码限制
- 码支付如何对接网站_支付宝当面付门店码如何做?
- StringBuilder的使用
- Spring 学习教程(一): 认识 Spring 框架
- Web框架——Flask系列之session机制(十六)
- bzoj1951 [Sdoi2010]古代猪文 lucas+CRT+exgcd
- 【干货】2021中国“企服企业”规模化获客体系建设指南.pdf(附下载链接)
- /var/lock/subsys作用
- labelme转VOC2007格式
- 【javascript-基础小练习】跟随鼠标移动的提示框
- android面试题之四(红黑联盟)
- 在北京租房 舒舍的租客素质怎么样?
- 三色球问题python_面试题-三色球问题
- 用JavaScript来对QUOTED-PRINTABLE进行解码和编码算法
- 《SAP HANA平台应用开发》—第2章2.1节熟悉HANA开发环境
- JavaWeb期末考试复习资料
- 第四天 hadoop HDFS上传下载原理
热门文章
- 【Tensorflow-Error】CUDA_ERROR_OUT_OF_MEMORY: out of memory
- 【Ubuntu-caffe-anaconda3】安装错误总结
- Eigen入门之密集矩阵 9 - 别名混乱Aliasing
- chrome v46渲染partial html内容的一个问题
- 【python 5】正则表达式
- cnn卷积神经网络应用_卷积神经网络(CNN):应用的核心概念
- linux usb filesystem
- AD制图相关问题总结
- python语言的编程模式_一种基于Python语言的EDA开发平台及其使用方法与流程
- Pygame 使用Djkstra广度搜索寻找迷宫(相对)最短路径