34,837
社区成员




--
create procedure sp_liantong
@asfzmhm varchar(20),
@bplateid varchar(20)
as
begin
insert into bbb(tel,hm,id)
select tel,hm,id from aaa where hm=@asfzmhm and id=@bplateid
end
将函数的返回参数@str1长度改一下。 刚才忘记改了
create function wsp(@asfzmhm varchar(20),@bplateid varchar(20))
returns varchar(8000)
as
begin
declare @str1 varchar(8000),@str2 varchar(1000),@cnt int
Select @str2='',@cnt=0
--按身份证号查询
select
@str1=person.xm+(case person.xb when 1 then '先生,' else '女士,' end)
+'您的驾驶证审验日期为'+substring(rtrim(Drvinglicense.syrq),1,10)+','+'换证有效期止'+substring(rtrim(Drvinglicense.yxqz),1,10)+','
+'累积扣分'+rtrim(Drvinglicense.ljjf)+'分'
from
Drvinglicense,
person
where
Drvinglicense.sfzmhm=person.sfzmhm and Drvinglicense.sfzmhm=@asfzmhm
--按车牌号查询
select
@cnt=@cnt+1,
@str2=@str2+','+substring(rtrim(inspedate),6,2)+'月'+substring(rtrim(inspedate),9,2)+'日在'+' '+inspeadre+' '+vehstatue
from
weifa
where
plateid=@bplateid
set @str1=@str1+';'+'车牌号为'+@bplateid+'的年有'+rtrim(@cnt)+'次违章'+@str2
return @str1
end
将上面返回msg的存储过程改成一个函数:
create function wsp(@asfzmhm varchar(20),@bplateid varchar(20))
returns varchar(8000)
as
begin
declare @str1 varchar(1000),@str2 varchar(1000),@cnt int
Select @str2='',@cnt=0
--按身份证号查询
select
@str1=person.xm+(case person.xb when 1 then '先生,' else '女士,' end)
+'您的驾驶证审验日期为'+substring(rtrim(Drvinglicense.syrq),1,10)+','+'换证有效期止'+substring(rtrim(Drvinglicense.yxqz),1,10)+','
+'累积扣分'+rtrim(Drvinglicense.ljjf)+'分'
from
Drvinglicense,
person
where
Drvinglicense.sfzmhm=person.sfzmhm and Drvinglicense.sfzmhm=@asfzmhm
--按车牌号查询
select
@cnt=@cnt+1,
@str2=@str2+','+substring(rtrim(inspedate),6,2)+'月'+substring(rtrim(inspedate),9,2)+'日在'+' '+inspeadre+' '+vehstatue
from
weifa
where
plateid=@bplateid
set @str1=@str1+';'+'车牌号为'+@bplateid+'的年有'+rtrim(@cnt)+'次违章'+@str2
return @str1
end
再把aaa中所有记录插入bbb表中。调用函数得到msg
create procedure sp_liantong
as
begin
declare @tel varchar(50)
declare @asfzmhm varchar(20)
declare @bplateid varchar(20)
declare cur cursor for select * from aaa
open cur
fetch next from cur into @tel,@asfzmhm,@bplateid
while(@@fetch_status=0)
begin
insert into bbb(tel, asfzmhm, bplateid,msg) select @tel,@asfzmhm,@bplateid,dbo.wsp(@asfzmhm,@bplateid)
fetch next from cur into @tel,@asfzmhm,@bplateid
end
close cur
deallocate cur
end