【发布时间】:2012-03-12 04:48:36
【问题描述】:
我有一个接受多个参数的存储过程。其中之一是具有默认值为 NULL 的 DateTime。
不幸的是,这将被写入的列是一个可为空的 DateTime 列。这是一个问题,因为有时在调用存储过程时会忽略该参数,但它最终会将一个有效的日期时间覆盖到目标表中。
是否有任何 T-SQL 函数或其他方法可以用来确定调用者是否实际显式传入 NULL 或只是忽略该参数并让它设置默认值?
我唯一能想到的;
- 还有一个标志表明用户希望保留 DateTime 信息
- 创建两个版本的存储过程;一种具有 DateTime 参数且没有默认值,另一种则完全省略了 DateTime 参数。
这两个想法似乎都不是很棒的想法,因此非常感谢任何想法。
【问题讨论】:
-
除了检查您的参数值是否为 NULL - 不,不是真的。存储过程的值是定义的默认值还是提供的值也不重要——值就是值。
标签: sql-server-2005 stored-procedures default-value