CREATE PROCEDURE usp_CheckVehicle 
(
@vchHpzl varchar(2), -- 需要检查的车辆号牌种类。
@vchHphm varchar(15) -- 需要检查车辆的号牌号码。
)
AS
set nocount on
declare @vchReturn as varchar(8000)
if exists(Select * from Domicile..ePolice
Where hpzl = @vchHpzl and hphm = @vchHphm and kk_flag = 0)
begin
raiserror ('该车辆摄像抄牌未被处理!', 16 ,1)
set @vchReturn = 'select * from Domicile..ePolice  where hpzl = ''' + @vchHpzl + ''' and hphm=''' + @vchHphm + ''''
select @vchReturn
return -1
endGOif exists(Select * from Domicile..ePolice
Where hpzl = @vchHpzl and hphm = @vchHphm and kk_flag 
这个判断是什么意思??select @vchReturn是什么意思
return -1   反回一是什么意思!!

解决方案 »

  1.   

    if exists(Select * from Domicile..ePolice
    Where hpzl = @vchHpzl and hphm = @vchHphm and kk_flag )
    判断是否有记录吧,也可用@@rowcount>0来判断
    select @vchReturn是把变量@vchReturn的值输出return -1 存储过程返回值,你自己设的。具体意思要看你要让它是什么意思啦,这里可以认为是非零,表示执行成功
      

  2.   

    阿土select @vchReturn是把变量@vchReturn的值输出@vchReturn输出是一个SELECT语句到VB!
      

  3.   

    有啥问题呢?这种输出方式没错啊,在vb里你可以用一个记录集去接收。如果你要用参数输出,则要定义一个输出的参数CREATE PROCEDURE usp_CheckVehicle 
    (
    @vchHpzl varchar(2), -- 需要检查的车辆号牌种类。
    @vchHphm varchar(15), -- 需要检查车辆的号牌号码。
             @vchRet varchar(8000) output         -- 输出
    )
    as...set @vchRet = @vchReturn...
      

  4.   

    但是我没有把@varchar设为输出的!!在VB中怎么样才能得到@varchar的值呢!?