在t-sql函数中覆盖参数

时间:2011-01-10 20:47:45

标签: tsql

我正在玩一些代码,并意识到可以将参数覆盖为t-sql函数。即,

create function someFn(@date date) as
begin
if @date is null set @date = getdate()
如果参数为null,

将@date设置为今天的日期。

这似乎只有在t-sql将其参数视为引用而不是值时才有意义。我意识到我实际上并不知道t-sql规则对于这样的情况是什么,并且希望有人可以详细说明这里发生了什么。 (我永远不会记得看到任何有关t-sql代码的参考讨论的实际情况......)

2 个答案:

答案 0 :(得分:1)

您在这里工作的@date是您的功能的本地。您将更改函数中的值,但不会影响调用代码中的值。

答案 1 :(得分:0)

函数必须使用返回值/类型声明,最后一个语句必须是return语句。如果你的最后一个语句返回@date,那么将返回Getdate()值。