根据传入的两个参数,做分隔更新数据库中的值。
来源:互联网 发布:网络产品包装的作用 编辑:程序博客网 时间:2024/06/05 20:01
alter proc p_update_u_road_trans_c_sendstatus (@comText varchar(8000))
as
begin
create table #tb(transportNo varchar(20),billno varchar(20),status char(1));
--set @comText='150830001001:1508250094=1,1508250101=1,1508290024=1;150830001002:1508270246=1,1508270249=1,1508270267=1';
set nocount on;
declare @semicolonlast int,@semicolonCurrent int;
declare @colonlast int,@colonCurrent int;
declare @singleCmdText varchar(8000);
declare @transportNo varchar(20),@SetCmdText varchar(4000);
declare @commalast int,@commaCurrent int;
declare @lastCmdText varchar(100);
declare @billno varchar(20),@status char(1);
set @semicolonlast=0;
while 1=1
begin
set @semicolonCurrent=CHARINDEX(';',@comText,@semicolonlast);
if @semicolonCurrent>0
set @singleCmdText=SUBSTRING(@comText,@semicolonlast,@semicolonCurrent-@semicolonlast);
else
set @singleCmdText=SUBSTRING(@comText,@semicolonlast,LEN(@comText)-@semicolonlast+1);
set @semicolonlast=@semicolonCurrent+1;
set @colonCurrent=CHARINDEX(':',@singleCmdText);
set @transportNo=SUBSTRING(@singleCmdText,0,@colonCurrent);
set @SetCmdText=SUBSTRING(@singleCmdText,@colonCurrent+1,LEN(@singleCmdText)-@colonCurrent);
set @commalast=0;
while 1=1
begin
set @commaCurrent=CHARINDEX(',',@SetCmdText,@commalast);
if @commaCurrent=0
set @lastCmdText=SUBSTRING(@SetCmdText,@commalast,LEN(@SetCmdText)-@commalast+1);
else
set @lastCmdText=SUBSTRING(@SetCmdText,@commalast ,@commaCurrent-@commalast);
set @commalast=@commaCurrent+1;
set @billno=SUBSTRING(@lastCmdText,0,LEN(@lastCmdText)-1);
set @status=RIGHT(@lastCmdText,1);
insert #tb(transportNo,billno,status)values(@transportNo,@billno,@status);
if @commaCurrent=0
break;
end
if @semicolonCurrent=0
break;
end
update c set sendstatus=b.status from u_road_trans_c c inner join #tb b on c.billno=b.billno and c.transno=b.transportNo;
if @@ROWCOUNT=0
begin
raiserror('更新失败!',16,1);
return;
end
end
as
begin
create table #tb(transportNo varchar(20),billno varchar(20),status char(1));
--set @comText='150830001001:1508250094=1,1508250101=1,1508290024=1;150830001002:1508270246=1,1508270249=1,1508270267=1';
set nocount on;
declare @semicolonlast int,@semicolonCurrent int;
declare @colonlast int,@colonCurrent int;
declare @singleCmdText varchar(8000);
declare @transportNo varchar(20),@SetCmdText varchar(4000);
declare @commalast int,@commaCurrent int;
declare @lastCmdText varchar(100);
declare @billno varchar(20),@status char(1);
set @semicolonlast=0;
while 1=1
begin
set @semicolonCurrent=CHARINDEX(';',@comText,@semicolonlast);
if @semicolonCurrent>0
set @singleCmdText=SUBSTRING(@comText,@semicolonlast,@semicolonCurrent-@semicolonlast);
else
set @singleCmdText=SUBSTRING(@comText,@semicolonlast,LEN(@comText)-@semicolonlast+1);
set @semicolonlast=@semicolonCurrent+1;
set @colonCurrent=CHARINDEX(':',@singleCmdText);
set @transportNo=SUBSTRING(@singleCmdText,0,@colonCurrent);
set @SetCmdText=SUBSTRING(@singleCmdText,@colonCurrent+1,LEN(@singleCmdText)-@colonCurrent);
set @commalast=0;
while 1=1
begin
set @commaCurrent=CHARINDEX(',',@SetCmdText,@commalast);
if @commaCurrent=0
set @lastCmdText=SUBSTRING(@SetCmdText,@commalast,LEN(@SetCmdText)-@commalast+1);
else
set @lastCmdText=SUBSTRING(@SetCmdText,@commalast ,@commaCurrent-@commalast);
set @commalast=@commaCurrent+1;
set @billno=SUBSTRING(@lastCmdText,0,LEN(@lastCmdText)-1);
set @status=RIGHT(@lastCmdText,1);
insert #tb(transportNo,billno,status)values(@transportNo,@billno,@status);
if @commaCurrent=0
break;
end
if @semicolonCurrent=0
break;
end
update c set sendstatus=b.status from u_road_trans_c c inner join #tb b on c.billno=b.billno and c.transno=b.transportNo;
if @@ROWCOUNT=0
begin
raiserror('更新失败!',16,1);
return;
end
end
0 0
- 根据传入的两个参数,做分隔更新数据库中的值。
- mybatis根据传入参数进行更新
- Hibernate传入两个参数时的写法
- 根据传入的参数来生成正则表达式;替换字符串中的全部。
- 指定具体的时间,根据传入的值对当前时间做相应的操作
- 根据java反射机制 通过传入的参数 对传入的List 进行排序
- --将传入的一个参数按指定分隔符切分到一个表中
- mysql根据条件做特定的更新
- sql语句,oracal更新操作传入参数为对象,判断对象中的字段是否有值,如果有就更新,如果没有就不更新
- 最近做的一个文本传入数据库程序
- 数据库字段是逗号分隔字符串,传入值是字符串list,判断二者是否有交集
- 项目问题-------传入存储过程中的参数的长度一定要和数据库表的字段长度保持一直
- python参数的传入 * ,**
- JAVA简单异常处理(main方法中的args[]命令行参数传入两个操作数)
- 如何给JQ的ajax方法中的success()传入参数?
- 根据文件名中含有的scriptid更新数据库中的对应的Version字段
- 如何向expect 传入数组做参数
- 根据用户传入的参数调用用户函数的php扩展
- json和jsonp
- 老毛桃u盘启动盘制作工具怎么用及重装系统步骤(一)
- 位操作基础篇之位操作全面总结
- black hat python
- python_基础02
- 根据传入的两个参数,做分隔更新数据库中的值。
- linux find grep组合使用
- 剑指offer:二维数组中的查找
- 无法解析的外部符号__imp__AlphaBlend@44
- 几种进程间的通信方式
- JPA实现的CRUD
- 推送机制
- 递归复习,递归输出字符串的全排列
- 我是菜鸟:concurrentHashMap实现原理