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,更新成功

时间: 2024-09-09 12:29:59

SQLServer用存储过程实现插入更新数据示例的相关文章

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

实现 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 declar

C#中SQLserver语句insert语句无法更新数据

问题描述 C#中SQLserver语句insert语句无法更新数据 string sqlUpdataString = "insert into RelationTab(RelationId,FoodId,OrderId,FoodName,FoodPrice) values(" + RelationIdMax + "," + FoodId + "," + OrderId + ",'" + FoodName + "',&

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

存储过程的功能非常强大,在某种程度上甚至可以替代业务逻辑层,接下来就一个小例子来说明,用存储过程插入或更新语句. 1.数据库表结构 所用数据库为Sql Server2008. 2.创建存储过程 (1)实现功能: 有相同的数据,直接返回(返回值:0): 有主键相同,但是数据不同的数据,进行更新处理(返回值:2): 没有数据,进行插入数据处理(返回值:1). 根据不同的情况设置存储过程的返回值,调用存储过程的时候,根据不同的返回值,进行相关的处理. (2)下面编码只是实现的基本的功能,具体的Sql代

sql server动态存储过程按日期保存数据示例

在项目中经常有大量数据信息保存到数据库,如只用一张表保存那肯定不现实,首选解决方案为按日期建立动态表来保存数据.在不改变保存方式的代码的情况下,用动态存储过程是首选,在sql server存储过程中进行日期计算,按日期建表效率最高,下面就公司项目的部分动态存储过程粘贴出来: -----sql语句: ALTER proc [dbo].[EventInsert] @chrTagData varchar(50), --编号 @intEData int, @chrJZData varchar(50),

存储过程问题插入数据

问题描述 存储过程问题插入数据 A.B两张表 两表中有字段编码和条码,A表中有两条数据,其中这两条数据的编码不同但条码相同(或者编码相同条码不同), 当执行存储过程时,将A表的数据插入到B表中时,不能出现条码相同或者编码相同的数据(即只能插一条数据进B表) 解决方案 SQLServer用存储过程实现插入更新数据批量插入数据的存储过程MySql存储过程动态创建表并插入数据 解决方案二: 那就是多条里如何取1条啊 看你业务上的需求是保留哪条啊

服务器上的access数据插入更新出错,查询正常

问题描述 今天修改了数据库某表的一个字段,重新上传后,就出问题了,能正常查询数据,但是插入更新数据是出错.本地能正常运行,我觉得是权限的问题,但是不知道怎样修改.求指导.... 解决方案 解决方案二:IIS的权限改一下,要设置可以写入.解决方案三:怎样设置,能具体点吗引用楼主shryap的回复: 今天修改了数据库某表的一个字段,重新上传后,就出问题了,能正常查询数据,但是插入更新数据是出错.本地能正常运行,我觉得是权限的问题,但是不知道怎样修改.求指导.... 解决方案四:怎样设置,能具体点吗引

如何实现插入并更新数据

插入|数据 各们老师好:                我想从一个表中插入数据并更新数据如何来实现: 例:   ID      年代    数据         1          2003    50         2          2002     40         3           2003      60 我想将其中的2003年的数据要更新成2004年的数据并要保留原来2003年的数据. 老师希望能指教.

关于mysql使用存储过程插入大量数据的问题

问题描述 关于mysql使用存储过程插入大量数据的问题 创建数据库 create database ceshi; use ceshi; 创建表 create table ce( id int not null auto_increment, name varchar(50) default null, pw char(50), primary key(id)); 存储过程 delimiter // create procedure insert_ce(in item int) begin dec

pl/sql写存储过程,插入数据,怎么写?

问题描述 pl/sql写存储过程,插入数据,怎么写? pl/sql写存储过程,向MT_JX这张表中插入新数据,MT_JX这张表中有四个字段:a1,a2,a3,a4.插入的数据全部是变量,对应的变量是P_a1,P_a2,P_a3,P_a4.a1是主键,新手不知道怎么写,求老师指点