如何从表的Max Id开始生成Sequence

ak1*_*ak1 1 sql-server sequence

我正在尝试使用此DML创建序列,我收到此错误:

'@maxBookingId'附近的语法不正确.

码:

 DECLARE @maxBookingId AS INT 

 SELECT @maxBookingId = MAX(bookingid) 
 FROM booking

 CREATE SEQUENCE Invoice_Seq  AS INTEGER  
 START WITH @maxBookingId
 INCREMENT BY 1  
 NO CYCLE;
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

dea*_*ean 5

不幸的是,这里没有变数.请改用动态SQL:

declare @maxBookingId as int 
select @maxBookingId = max(bookingid) from booking
declare @s nvarchar(4000);
set @s = N'
CREATE SEQUENCE Invoice_Seq  AS INTEGER  
START WITH ' + cast(@maxBookingId as nvarchar) + '
INCREMENT BY 1  
NO CYCLE;'

EXEC (@s);
Run Code Online (Sandbox Code Playgroud)