我试图从条件上(通过参数)获得4个序列的下一个值。在自定义标量值函数中,我试图使用"序列"的下一个值。序列定义为
CREATE SEQUENCE [dbo].[sequence1]
AS [int]
START WITH 1
INCREMENT BY 1
MINVALUE -2147483648
MAXVALUE 2147483647
CACHE
GO
功能定义为:
CREATE FUNCTION dbo.GetConditionalNextCounterValue
(
@CounterID tinyint
)
RETURNS int
AS
BEGIN
DECLARE @Counter AS INT
-- IF CounterID=1 then return value from Sequence1
IF (@CounterID = 1)
BEGIN
set @Counter = next value for sequence1;
END
IF (@CounterID = **2**)
BEGIN
set @Counter = next value for sequence2;
END
RETURN @Counter
END
但海关功能不支持"序列"的下一个值。 错误是:检查约束,默认对象,计算列,视图,用户定义函数,用户定义聚合,用户定义表类型,子查询,公用表表达式或派生表中不允许使用NEXT VALUE FOR函数。
是否有任何解决方法/其他方式可以实现此目的?