1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| create proc say_hello @xhstr varchar(max), @valuestr varchar(max), @xmstr varchar(max) as begin declare @xhindex int declare @xmindex int declare @indexcount int declare @xm_toinsert varchar(50) declare @subxh_front varchar(10) declare @subxm_front varchar(50)
if(dbo.CalcCounts(@xhstr,@valuestr)= dbo.CalcCounts(@xmstr,@valuestr)) begin print('分号一致,可以插入') set @indexcount = dbo.CalcCounts(@xhstr,@valuestr)
while @indexcount >= 0 begin
if @indexcount = 0 begin set @subxh_front = substring(@xhstr,1,len(@xhstr)) set @subxm_front = substring(@xmstr,1,len(@xmstr)) end
else begin set @xhindex = charindex(@valuestr,@xhstr,1) set @xmindex = charindex(@valuestr,@xmstr,1) set @subxh_front = substring(@xhstr,1,@xhindex-1) set @subxm_front = substring(@xmstr,1,@xmindex-1)
set @xhstr = substring(@xhstr,@xhindex+1,len(@xhstr)) set @xmstr = substring(@xmstr,@xmindex+1,len(@xmstr)) end select @xm_toinsert = xm from student where xh = @subxh_front if @xm_toinsert is not null begin update student set xm = @subxm_front where xh = @subxh_front end
else begin insert into student values(@subxh_front,@subxm_front) end
set @indexcount = @indexcount-1 end end else begin print('分号不一致,无法插入') end end
|