chiamata di stored procedure con ISNULL nell'assegnazione. Sintassi non valida?
-
26-09-2019 - |
Domanda
Al di sopra della chiamata a questa stored procedure è un'altra chiamata a una stored procedure diverso. La prima procedura assegnerà qualcosa da @NewIdentifier
se deve, altrimenti ho bisogno di usare il SaleId
di default.
exec myStoredProc @SaleId = ISNULL(@NewIdentifier, @SaleId)
Funziona se lo faccio in questo modo
declare @Id int
set @Id = ISNULL(@NewIdentifier, @SaleId)
exec myStoredProc @SaleId = @Id
E 'possibile utilizzare ISNULL
nell'assegnazione di un parametro di stored procedure? Non sono sicuro di ciò che è valido su questa sintassi.
Soluzione
Il parametro deve essere una costante o variabile. Non può essere un'espressione.
Altri suggerimenti
E 'possibile che l'operatore '=' ha la precedenza inferiore '('? Se è così, sarebbe stato analizzato come mystoredproc exec (@SaleId = ISNULL) (@NewIdentifier, @SaleId) , che sarebbe un errore di sintassi.