我不断收到此错误:任何想法?使用newID创建函数()
Invalid use of side-effecting or time-dependent operator in 'newid' within a function.
我正在与MS-SQL Server 2005
一起工作。这里是T-SQL
声明:
Create Function [dbo].[GetNewNumber]()
RETURNS int
AS
BEGIN
Declare @code int
set @code = (SELECT CAST(CAST(newid() AS binary(3)) AS int))
RETURN (@code)
END
我应该担心同样数量产生两次或这些机会是天文吗? – 2010-02-02 19:08:20
它们不是超越可能性的领域,只有最多1亿个可用数字,完全由随机机会完成。通过生日问题理论,你的比赛机会将比你预期的更早。 – Andrew 2010-02-02 20:24:47
+1,很好的解决方法。虽然它可能是防守性编码,但在这种情况下,“顶部1”看起来没有必要,并且比没有更慢。 – 2012-11-05 20:19:25