MsSql Server:存储过程中的默认bigint参数

时间:2017-10-25 10:50:45

标签: sql-server stored-procedures arguments default-value coalesce

我想有一个带可选参数的存储过程。默认值为null

CREATE PROCEDURE [myStoredProcedure](@itemID bigint = NULL)

然后我想在COALESCE

中使用它
COALESCE(@itemID, table.itemID) = table.itemID

这种方法对于使用可选参数是否正确?这对Oracle有效吗?

1 个答案:

答案 0 :(得分:2)

虽然您可以使用COALESCE(),但我认为明确的比较更为典型:

where (t.itemId = @itemId or @itemId is null)

这两种方法都适用于SQL Server或Oracle,因为它们都是标准SQL。在Oracle中,参数不以@开头,存储过程的语法可能看起来很不一样。