我正在尝试像在SQL Server 2012中那样做
CREATE SEQUENCE item_seq
START WITH (SELECT MAX(i_item_sk)
FROM item)
INCREMENT BY 1;
Run Code Online (Sandbox Code Playgroud)
可能吗?如果不可能,还有哪些其他方法?我们可以像在PostgreSQL中一样(如下所示)吗?
create sequence item_seq
select setval('item_seq', (select max(i_item_sk)+1 from item), false);
Run Code Online (Sandbox Code Playgroud)
我将在Kettle'添加序列'步骤中进一步使用此序列变量.
看起来你不能在语法中声明一个变量.但是,您可以将其包装在EXEC
语句中,如下所示:
DECLARE @max int;
SELECT @max = MAX(i_item_sk)
FROM item
exec('CREATE SEQUENCE item_seq
START WITH ' + @max +
' INCREMENT BY 1;')
select * from sys.sequences
Run Code Online (Sandbox Code Playgroud)