我不斷收到此錯誤:任何想法?使用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