Java 如何在没有标识的情况下从sql server获取生成的密钥?
我有一个代码,可以插入一行并从中检索生成的键。但是,它不适用于SQL Server。我研究了一下,似乎这个专栏需要Java 如何在没有标识的情况下从sql server获取生成的密钥?,java,sql-server,Java,Sql Server,我有一个代码,可以插入一行并从中检索生成的键。但是,它不适用于SQL Server。我研究了一下,似乎这个专栏需要IDENTITY属性 但是,我已经在使用SQLServer中的Sequence来设置该列的属性。它从1开始,递增1,最大值为确定值。我的查询使用以下顺序插入行: INSERT INTO event_master (event_id, user_id, type, detail, status, update_timestamp) VALUES (NEXT VALUE FOR even
IDENTITY
属性
但是,我已经在使用SQLServer中的Sequence来设置该列的属性。它从1开始,递增1,最大值为确定值。我的查询使用以下顺序插入行:
INSERT INTO event_master (event_id, user_id, type, detail, status, update_timestamp)
VALUES (NEXT VALUE FOR event_master_id_seq, ?,?,?,?,?)
是否有任何方法可以使用此格式检索生成的值(在我的例子中,是event_id)?或者我必须要有
IDENTITY
才能让它工作吗?我想把它作为的副本关闭,但这个问题没有涉及或询问使用序列而不是IDENTITY列。此外,我还想明确说明,这适用于多行(如果您计划使用标量变量)
顺便说一句,我真的希望您不要使用某个应用程序中的
?
占位符,您应该真正使用显式和强类型参数。我知道这在Java中比在现代语言中更难,但请看,例如。您需要使用子句。我认为相关的答案,请参阅
DECLARE @event_ids TABLE(event_id int);
INSERT INTO dbo.event_master (event_id, ... other cols)
OUTPUT inserted.event_id INTO @event_ids
VALUES (NEXT VALUE FOR event_master_id_seq, ... other vals);
SELECT event_id FROM @event_ids;