存储过程VS查询输出

时间:2016-08-17 09:21:17

标签: sql sql-server stored-procedures

我尝试这个SQL查询

select 
    count(tblVV.PName) as total, 
    tblVV.PName
from 
    tblVV
inner join 
    tblRV on tblVV.MID = tblRV.ID
inner join 
    tblReg on tblRV.RID = tblReg.RID
where 
    tblReg.StartDate>= '2016-07-01 00:00:00' and
    tblReg.EndDate<= '2016-07-31 23:59:59' and
    tblReg.Region = 'uk' and
    tblRegionVehicles_Uni.RegNo = 'BE82' and 
    tblVV.PName <>''
group by 
    tblVV.PName

这显示了这样的结果

total   PName
1      Sugar
11     Apple

现在我创建一个像这样的

相同查询的存储过程
create procedure sp_ownerdata
    @fromdate datetime,
    @todate datetime,
    @region varchar,
    @RegNo varchar
as
    select 
        count(tblVV.PName) as total, 
        tblVV.PName
    from 
        tblVV
    inner join 
        tblRV on tblVV.MID = tblRV.ID
    inner join 
        tblReg on tblRV.RID = tblReg.RID
    where 
        tblReg.StartDate >= @fromdate and
        tblReg.EndDate <= @todate and
        tblReg.Region = @region and
        tblRegionVehicles_Uni.RegNo = @RegNo and 
        tblVV.PName <>''
    group by 
        tblVV.PName

并按此执行

execute sp_ownerdata '2016-07-01 00:00:00','2016-07-31 23:59:59','uk','BE82'

然后,当我执行存储过程时输入正确的参数名称和正确的值

时,这没有显示任何内容
 total  PName

1 个答案:

答案 0 :(得分:4)

参数长度问题

@region varchar,
@RegNo varchar

您需要为存储过程中的VARCHAR参数指定适当的长度

@region varchar(10),
@RegNo varchar(10)