一尘不染

使用RAND()在SQL Server中创建非确定性函数

sql

经过一番搜索和阅读文档后,很明显,您可以在SQL Server中编写用户定义的函数,这些函数被标记为确定性或非确定性的函数,具体取决于主体中使用的内置函数。

RAND()列在非确定性函数下(请参阅msdn article)。那为什么不能在函数中使用它呢?


阅读 105

收藏
2021-05-05

共1个答案

一尘不染

因为它有副作用。

函数中不允许有副作用的构造。它的副作用是更改某些内部状态,以跟踪上次rand()发布的值。

我认为您可以通过将其包含在View定义中然后从View中进行选择来解决它。

2021-05-05