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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top