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

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

RAND()列在非确定性函数下(见msdn article).那么为什么我不能在函数中使用它呢?

解决方法

因为它有副作用.

函数中不允许带有副作用的构造.它的副作用是改变一些内部状态,跟踪发出的最后一个rand()值.

我认为你可以通过将它包含在View定义中然后从View中选择来解决它.

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...