Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

MS SSQL:Como usar case quando como parâmetro exec


Sua suposição está simplesmente errada. Verifique a EXECUTE documentation
Execute a stored procedure or function
[ { EXEC | EXECUTE } ]
    { 
      [ @return_status = ]
      { module_name [ ;number ] | @module_name_var } 
        [ [ @parameter = ] { value 
                           | @variable [ OUTPUT ] 
                           | [ DEFAULT ] 
                           }
        ]
      [ ,...n ]
      [ WITH RECOMPILE ]
    }
[;]



Como você vê, você pode passar como @parameter :
  • valor
  • @variável
  • PADRÃO

Então você precisa usar a variável para manter o resultado da chamada de função e passá-lo para o procedimento armazenado.