sql传入组合字符串批量操作
批量操作时我们可以传入一个有规律的ID或则是其他唯一值字段的组合字符串,然后:select/update/inset......where 字段 in(传入的组合字符串),而且很多时候我们还涉及到其他操作,下面也有代码,就是将传入的组合字符串,重新分割后,再次对数据库进行操作
create proc prc_OrderBatchHandle
@Sgin int,
@BatchStr varchar(50),
@HandleAdmin varchar(50)
as
declare @MediumBatchStr varchar(500)
set @MediumBatchStr=','+@BatchStr+','//这里是将传入的字符串 前后各加一个,符号,重新组合成一个有规律的字符串,已方便下面切分操作
declare @prc_GroupStr nvarchar(600)
declare @prc_AddHandleMember nvarchar(600)
if(@Sgin=1)
begin
set @prc_GroupStr= N'update QD_OrderSheet set order_nowState=''成功'' where order_Id IN ('+@BatchStr+')'
exec sp_ExecuteSql @prc_GroupStr
set @prc_AddHandleMember= N'update QD_OrderSheet set order_handleUser='''+@HandleAdmin+''' where order_Id IN ('+@BatchStr+')'
exec sp_ExecuteSql @prc_AddHandleMember
end
else if(@Sgin=2)
begin
set @prc_GroupStr= N'update QD_OrderSheet set order_nowState=''失败'' where order_Id IN ('+@BatchStr+')'
exec sp_ExecuteSql @prc_GroupStr
set @prc_AddHandleMember= N'update QD_OrderSheet set order_handleUser='''+@HandleAdmin+''' where order_Id IN ('+@BatchStr+')'
exec sp_ExecuteSql @prc_AddHandleMember
while(LEN(@MediumBatchStr)>1)字符串分割后操作部分
begin
declare @value varchar(50)
select @value=left(stuff(@MediumBatchStr,1,charindex(',',@MediumBatchStr),''),charindex(',',stuff(@MediumBatchStr,1,charindex(',',@MediumBatchStr),''))-1)
declare @ReturnMoney money
select @ReturnMoney= order_Price from QD_OrderSheet where order_Id=cast(@value as int)
declare @BuyUser varchar(50)
select @BuyUser=order_BuyAccount from QD_OrderSheet where order_Id=cast(@value as int)
declare @Suppler varchar(50)
select @Suppler=order_supplierName from QD_OrderSheet where order_Id=cast(@value as int)
update QD_UserSheet set user_Money=user_Money+@ReturnMoney where user_Account=@BuyUser
update QD_SuppierSheet set Supplier_Money=Supplier_Money-@ReturnMoney where Supplier_Account=@Suppler
set @MediumBatchStr=stuff(@MediumBatchStr,1,LEN(@value)+1,'')
end 分割后结束部分
end
else
begin
set @prc_GroupStr= N'delete from QD_OrderSheet where source_Id IN('+@BatchStr+')'
exec sp_ExecuteSql @prc_GroupStr
end
sql传入组合字符串批量操作的更多相关文章
- sql 表值函数-将一个传入的字符串用2中分隔符拆分成临时表
USE [tms]GO/****** Object: UserDefinedFunction [dbo].[fn_StrToTable_Double] Script Date: 2017/4/26 9 ...
- SQL记录-PLSQL字符串
PL/SQL字符串 PL/SQL字符串实际上是一个可选的尺寸规格字符序列.字符可以是数字,字母,空白,特殊字符或全部的组合. PL/SQL提供了三种类型的字符串: 固定长度字符串:在这样的字符串,程序 ...
- SQL Server:字符串函数
以下所有例子均Studnet表为例: 1. len():计算字符串长度 len()用来计算字符串的长度,每个中文汉字或英文字母都为一个长度 select sname, len(sname) from ...
- SQL Server 分隔字符串函数实现
在SQL Server中有时候也会遇到字符串进行分隔的需求.平时工作中常常遇到这样的需求,例如:人员数据表和人员爱好数据表,一条人员记录可以多多人员爱好记录,而往往人员和人员爱好在界面展示层要一并提交 ...
- Swift3.0语言教程组合字符串
Swift3.0语言教程组合字符串 Swift3.0语言教程组合字符串,当开发者想要将已经存在的字符串进行组合,形成一个新的字符串,可以使用NSString中的两个方法,分别为appending(_: ...
- 在SQL中取出字符串中数字部分或在SQL中取出字符部分
在SQL中取出字符串中数字部分或在SQL中取出字符部分 编写人:CC阿爸 2013-10-18 近来在开发一个项目时,一包含数字的字符串,需要取出中间的数字部分进行排序.经过baidu搜索.并结合自己 ...
- .NET SQL Server连接字符串句法
.NET SQL Server连接字符串句法 数据库的连接性已经发展成为应用程序开发的一个标准方面.数据库连接字符串现在已经成为每个项目的标准必备条件.我发现自己为了找到所需要的句法,经常要从另外一个 ...
- SQL点滴33—SQL中的字符串操作
原文:SQL点滴33-SQL中的字符串操作 计算字符串长度len()用来计算字符串的长度 select sname ,len(sname) from student 字符串转换为大.小写lower() ...
- MS SQL Server 数据库连接字符串详解
MS SQL Server 数据库连接字符串详解 原地址:http://blog.csdn.net/jhhja/article/details/6096565 问题 : 超时时间已到.在从池中获取连接 ...
随机推荐
- EF架构~对AutoMapper实体映射的扩展
回到目录 AutoMapper在之前我曾经介绍过,今天主要是把它作一下扩展,因为它的调用太麻烦了,呵呵,扩展之后,用着还可以,感觉.net3.5之后,有了扩展方法这个东西,在程序开发速度及表现力上都有 ...
- Linux之VSFTP服务
一 .文件服务器简介 ftp:在内网和公网使用. 服务器:windows,linux 客户端:windows,linux samba:只能在内网使用(文件共享服务) 服务器:windows,linux ...
- fir.im Weekly - 深度揭秘 App 启动全过程
世纪寒潮席卷全中国,可谓普天之下莫低0℃.无论怎样的严寒都抵挡不了程序员们的创造的激情... 本期的 fir.im Weekly ,最新的 iOS/Android 开发资源,GitHub 源码.前端技 ...
- Android笔记——Android框架
本篇将站在顶级的高度--架构,来看android.我开篇就说了,这个系列适合0基础的人且我也是从0开始按照这个步骤来 学的,谈架构是不是有点螳臂挡车,自不量力呢?我觉得其实不然,如果一开始就对整个an ...
- Java基础-接口.编写2个接口:InterfaceA和InterfaceB;在接口InterfaceA中有个方法void printCapitalLetter();在接口InterfaceB中有个方法void printLowercaseLetter();然 后写一个类Print实现接口InterfaceA和InterfaceB,要求 方法 实现输出大写英文字母表的功能,printLowerca
#34.编写2个接口:InterfaceA和InterfaceB:在接口InterfaceA中有个方法void printCapitalLetter():在接口InterfaceB中有个方法void ...
- 纯CSS制作水平垂直居中“十字架”
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- @@IDENTITY与SCOPE_IDENTITY()
在一条 INSERT.SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含语句生成的最后一个标识值.如果语句未影响任何包含标识列的表,则 @@IDENTITY 返回 NULL. ...
- Oracle 11g系列:函数与存储过程
1.函数 Oracle中的函数分为两类:系统函数和自定义行数.对于自定义函数,函数的传入参数可以没有,如果有,一定要明确其数据类型.函数传入参数不能在函数内部进行修改.函数必须有返回值,并且返回值必须 ...
- 【WP 8.1开发】一键锁屏
在WP8的时候,关于如何关闭屏幕,国内外都有不少文章了,大家有兴趣地可以搜搜,很多,我就不给链接了,因为稍后我的例子中会有. 其实,关闭屏幕是调用了未开放的API,正因为这个API未开放的,不敢保证所 ...
- 兼容90%标准C的词法分析器
不能分词八进制和数字类型加前/后缀的情况 拿这个词法分析器跑了一遍整个Nginx源码,基本都能正确的分出结果,后面有测试例子~ #ifndef _STATES_H_ #define _STATES_H ...