SQL Server存储过程不适用于varchar第二个参数

ale*_*ero 0 sql t-sql sql-server sql-server-2008

我在SQL Server中编写了这个过程:

 ALTER  PROCEDURE [dbo].[buscapro1]
    @prod nvarchar(80), 
    @opc bit     
AS
    if @opc=1 
    begin
       select 
          idproduto, CODIGO, codfab, produto, Descricao, PRECOVENDA 
       from 
          verproduto 
       where 
          CODIGO like @prod
    end

    if @opc=2
    begin
       select 
           idproduto, CODIGO, codfab, produto, Descricao, PRECOVENDA 
       from 
           verproduto 
       where 
           produto like @prod 
   end
Run Code Online (Sandbox Code Playgroud)

如果我发送此行:

  buscapro1 'bela-01', 1
Run Code Online (Sandbox Code Playgroud)

我有积极回报的行.现在问题是第二个参数"produto"返回空

  select * 
  from verproduto 
  where produto like 'aparador'
Run Code Online (Sandbox Code Playgroud)

回报

 idProduto  CODIGO   PRODUTO     Descricao  PRECOVENDA  TRATAMENTO
 -------------------------------------------------------------------------
  1480          BELA-01  APARADOR    Aparador      325          Bela Moveis
Run Code Online (Sandbox Code Playgroud)

当我发送

 buscapro1 'aparador',2
Run Code Online (Sandbox Code Playgroud)

返回空,我做错了什么?

谢谢alejandro

dea*_*ean 5

BIT只能是1或0,而不是2; 当你将它设置为2时,实际上你得到的值为1.