sql 存储过程处理重复数据
有一个表A
销售订单测试查询
销售订单测试查询
销售订单测试查询
销售订单测试查询2
销售订单测试查询
往表b里面插数据,表A里名字相同的就加1,最后插入b表里的数据就如下图:
销售订单测试查询
销售订单测试查询1
销售订单测试查询3
销售订单测试查询2
销售订单测试查询4
那位高手加我QQ:指点一下哦,我的代码不知道怎么修改
ALTER proc CopyDate @CheckID nvarchar(4000)
as
begin
declare @FID nvarchar(4000)
set @FID=@CheckID
--插入数据
declare Print_Cursor CURSOR for select FBillTypeID,FName,FDesigner,FDate,FGUID,FSystem from ##temp where 1=1 and CHARINDEX(','+RTRIM(fid)+',',','+@FID+',')>0
open Print_Cursor
declare @FBillTypeID int,
@FName varchar(100),
@FDesigner int,
@FDate varchar(50),
@FGUID varchar(50),
@FSystem int,
@Fcount int
fetch next from Print_Cursor into @FBillTypeID,@FName,@FDesigner,@FDate,@FGUID,@FSystem
while @@fetch_status=0
begin--////
-----查询是否有同样GUID的数据存在
if not exists(select * from t_BC_PrintDesign where FGUID=@FGUID)
begin--///
----查询是否有同样方案的数据存在
while(1=1)
begin
if exists(select * from t_BC_PrintDesign where FName=@FName)--同方案名
begin--/
select @Fcount=count(*) from t_BC_PrintDesign where FName like @FName+'%'
set @FName=@FName+convert(varchar(100),@Fcount)
end--/
else--/
break
end--/
insert into t_BC_PrintDesign values(@FBillTypeID,@FName,@FDesigner,@FDate,@FGUID,@FSystem)
end--///
fetch next from Print_Cursor into @FBillTypeID,@FName,@FDesigner,@FDate,@FGUID,@FSystem
end--////
CLOSE Print_Cursor
DEALLOCATE Print_Cursor
end