如何设置序列的“开始于"以在 SQL Server 中选择查询结果? [英] How to set 'start with' of sequence to select query result in SQL server?

查看:29
本文介绍了如何设置序列的“开始于"以在 SQL Server 中选择查询结果?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试做一些类似于 SQL Server 2012 的事情

I am trying to do something like in SQL server 2012

CREATE SEQUENCE item_seq
  START WITH (SELECT MAX(i_item_sk)
     FROM item) 
  INCREMENT BY 1;

有可能吗?如果这是不可能的,还有什么其他方法?我们可以像在 PostgreSQL 中那样做吗(下面给出)?

Is it possible? What are the other ways if this is not possible? Can we do it like how we do it in PostgreSQL(given below)?

create sequence item_seq 
select setval('item_seq', (select max(i_item_sk)+1 from item), false);

我会在 Kettle 的添加序列"步骤中进一步使用这个序列变量.

I would be further using this sequence variable in Kettle 'Add sequence' step.

推荐答案

您似乎无法在语法中声明变量数量.但是,您可以将其包装在 EXEC 语句中,如下所示:

It does not look like you can declare a variable amount in the syntax. However, you can wrap it in an EXEC statement, like so:

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

这篇关于如何设置序列的“开始于"以在 SQL Server 中选择查询结果?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆