如果函数以相同参量调用时返回不同结果,或者如果它修改数据库或变量的状态,则函数是 variant。例如,返回当前日期和时间的函数就是一个可变函数。
缺省情况下,用户定义函数是可变的。如果在创建或修改函数时指定 NOT VARIANT,那么函数就不能包含任何 SQL 语句。
如果函数是不变的,数据库服务器可以存储返回可变函数。更多关于函数型索引的信息,请参阅 CREATE INDEX 语句。
要注册一个不变函数,在这个子句或例程修饰符讨论的例程修饰符子句中添加 NOT VARIANT 选项。然而,如果在两处都指定修饰符,必须在两个子句中都使用同一修饰符(VARIANT 或 NOT VARIANT)。