一尘不染

使用newID()创建函数

sql

我不断收到此错误:有任何想法吗?

在函数中的“ newid”中无效地使用了副作用或时间相关的运算符。

我正在与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

阅读 133

收藏
2021-05-16

共1个答案

一尘不染

该函数将不允许您使用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]()按计划使用。

2021-05-16