7

このストアドプロシージャの呼び出しの上には、別のストアドプロシージャへの別の呼び出しがあります。最初の手順では、必要に応じて何かを割り当てます。@NewIdentifierそれ以外の場合は、デフォルトを使用する必要がありますSaleId

exec myStoredProc @SaleId = ISNULL(@NewIdentifier, @SaleId)

このようにすればうまくいきます

declare @Id int
set @Id = ISNULL(@NewIdentifier, @SaleId)
exec myStoredProc @SaleId = @Id

ISNULLストアドプロシージャパラメータの割り当てに使用することはできますか?この構文の何が無効かわかりません。

4

2 に答える 2

8

パラメータは定数または変数である必要があります。式にすることはできません。

于 2010-09-30T22:00:04.757 に答える
0

'='演算子の優先順位が'('(')よりも低い可能性はありますか?その場合、exec myStoredProc(@SaleId = ISNULL)(@ NewIdentifier、@SaleId)として解析され、構文エラーになります。

于 2010-09-30T21:59:45.460 に答える