我不断收到此错误:有任何想法吗?
在函数中的“ newid”中无效地使用了副作用或时间相关的运算符。
我正在与MS-SQL Server 2005。这是T-SQL声明:
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
该函数将不允许您使用NewID,但是可以解决此问题。
Create View vwGetNewNumber as Select Cast(Cast(newid() AS binary(3)) AS int) as NextID Create Function [dbo].[GetNewNumber] ( ) RETURNS int AS BEGIN Declare @code int Select top 1 @code=NextID from vwGetNewNumber RETURN (@code) END
然后,您可以select dbo.[GetNewNumber]()按计划使用。
select dbo.[GetNewNumber]()