Sql server 如何生成从表的最大Id开始的序列

Sql server 如何生成从表的最大Id开始的序列,sql-server,sequence,Sql Server,Sequence,我试图使用此DML创建序列,但出现以下错误: “@maxBookingId”附近的语法不正确 代码: 如何解决此问题?不幸的是,这里没有变量。请改用动态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 W

我试图使用此DML创建序列,但出现以下错误:

“@maxBookingId”附近的语法不正确

代码:


如何解决此问题?

不幸的是,这里没有变量。请改用动态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);
状态必须是常数。为了避免这种情况,您应该能够使用动态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);