我有一个存储过程,它接受几个参数。其中一个是DateTime,其默认值为NULL。
不幸的是,这将写入的列是一个可以为空的DateTime列。这是一个问题,因为有时在调用存储过程时会忽略该参数,但最终会将带有null的有效日期时间覆盖到目标表。
是否有任何T-SQL函数或其他方法可用于确定调用者是否实际显式传入NULL或只是忽略该参数并将其设置为默认值?
我唯一能想到的就是它;
两者看起来都不是很棒的想法,所以我们非常感谢任何想法。
答案 0 :(得分:0)
您可能采用的一种方法是将参数默认值从NULL
更改为“魔术”值 - 用户不太可能输入的日期 - 然后您可以在存储的正文中检查程序并采取相应行动。
魔术值的一个很好的选择是日期时间范围的开始或结束(01 Jan 1753
或31 Dec 9999
),具体取决于实际的数据配置文件。