在分配中使用ISNULL调用存储过程.无效的语法?

Bra*_*don 7 sql-server syntax isnull

对此存储过程的调用之上是对另一个存储过程的另一个调用.@NewIdentifier如果需要,第一个过程将分配一些东西,否则我需要使用默认值SaleId.

exec myStoredProc @SaleId = ISNULL(@NewIdentifier, @SaleId)
Run Code Online (Sandbox Code Playgroud)

如果我这样做,它的工作原理

declare @Id int
set @Id = ISNULL(@NewIdentifier, @SaleId)
exec myStoredProc @SaleId = @Id
Run Code Online (Sandbox Code Playgroud)

是否可以ISNULL在分配存储过程参数时使用?我不确定这种语法有什么问题.

Joe*_*lli 8

参数必须是常量或变量.它不能是一种表达.