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