经过一番搜索和阅读文档后,很明显,您可以在SQL Server中编写用户定义的函数,这些函数被标记为确定性或非确定性的函数,具体取决于主体中使用的内置函数。
RAND()列在非确定性函数下(请参阅msdn article)。那为什么不能在函数中使用它呢?
因为它有副作用。
函数中不允许有副作用的构造。它的副作用是更改某些内部状态,以跟踪上次rand()发布的值。
rand()
我认为您可以通过将其包含在View定义中然后从View中进行选择来解决它。