Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在没有标识的情况下从sql server获取生成的密钥?_Java_Sql Server - Fatal编程技术网

Java 如何在没有标识的情况下从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

我有一个代码,可以插入一行并从中检索生成的键。但是,它不适用于SQL Server。我研究了一下,似乎这个专栏需要
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;