我最近发现 SQL Server 2005 不允许newid()
在用户定义的函数中使用。为什么是这样?
我有一个适合我需求的替代解决方案,所以我不是在寻找解决这个问题的方法。我很好奇为什么设计师会做出这个决定。
SQL Server 只允许在用户定义的函数中使用确定性函数。由于 NEWID() 的值不是确定性的,因此无法使用。您会发现 GETDATE() 和任何其他非确定性函数也是如此。
我没有资格回答他们为什么会做出这个决定。这也让我很恼火,但我确信 MS 的 SQL 团队不会懈怠。
编辑:事实证明,我对 GETDATE() 的了解已过时。正如评论者所说,您可以在 SQL Server 2005 以后的函数中使用 GETDATE()。但是,您仍然不能使用 NEWID(),我认为这与相同的非确定性约束有关。
归档时间: |
|
查看次数: |
2517 次 |
最近记录: |