我有一个存储过程,用可选参数@Param1 int = NULL 说“测试”。在该过程中,@Param1 的值用于更新某个表中某个列的值,如果调用者提供了一个值。如果未提供该参数,则不会更新该列。不幸的是,该列允许 NULL,因此调用者无法将列值设置为 NULL。所以,问题是:程序是否能够区分以下两个调用?
EXEC Test -- 预期含义:不更新列
EXEC Test @Param1 = NULL -- 预期含义:将列设置为 NULL
当然,程序可以检查是否@Param1 IS NULL。但是它可以确定是否已经提供了参数吗?