在SELECT语句中获取序列的下一个值

10

我希望在SQL表格中的多个SELECT语句中使用相同的序列号,最终将其作为主键插入表格并将多条记录关联起来。

到目前为止,我只能从dual中选择NEXTVAL:

SELECT TEST_SEQ.NEXTVAL AS SEQ FROM DUAL;

然而,当我将该序列包含在多列选择中时,会出现“此处不允许序列”错误。

SELECT col1, co2, col3, (select TEST_SEQ.NEXTVAL) SEQ
FROM table; 

非常感谢任何帮助。

4个回答

9

不要使用子查询:

SELECT col1, co2, col3, TEST_SEQ.NEXTVAL as SEQ
FROM table; 

5
如果你想从序列对象中选择下一个值,你可以使用这个SQL语句。
SELECT NEXT VALUE FOR [dbo].[seq_Vehicles] AS NextVehicleId

如果您想从SQL序列中选择多个下一个值,则必须循环调用上述SQL语句,并将得到的“下一个值”保存在存储中。
您可以使用while循环或游标来循环。

1
select SEQ_tablename.NEXTVAL from DUAL;

1
在T-SQL中使用Next Value for dbo.seqYourSequence来检索值。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接