对此存储过程的调用之上是另一个对不同存储过程的调用。如果需要,第一个过程会将内容分配给@NewIdentifier
,否则我需要使用默认的SaleId
。
exec myStoredProc @SaleId = ISNULL(@NewIdentifier, @SaleId)
如果我这样做就行了
declare @Id int
set @Id = ISNULL(@NewIdentifier, @SaleId)
exec myStoredProc @SaleId = @Id
是否可以在分配存储过程参数时使用ISNULL
?我不确定这种语法无效。
答案 0 :(得分:8)
参数必须是常量或变量。它不能是一种表达。
答案 1 :(得分:0)
'='运算符的优先级是否低于'('?如果是,它将被解析为 exec myStoredProc(@SaleId = ISNULL)(@ NewIdentifier,@ SaleId) ,这将是语法错误。