在插入语句后立即获取 PK ODBC SQL Anywhere

get the PK right after an insert statement ODBC SQL Anywhere

我在 SQL Anywhere 数据库上有这个插入语句,我使用 ODBC 进行插入,这是句子的一小段(只是一个例子)

 cmd_ex.CommandText = @" insert into tabla
                         (numero1, numero2, numero3, numero4...numeroN) 
                         VALUES
                         (?,?,?,?,?)";

并且工作正常,唯一的问题是 PK 是自动递增的,如果可能的话,我需要在同一条语句中恢复该值,你能帮我吗?

基于我尝试过的建议

cmd_.CommandText = @" insert into table(...) 
                         VALUES
                         (?,?,...,?) SELECT SCOPE_IDENTITY()";
Int32 id = Convert.ToInt32(cmd_.ExecuteScalar());
                    MessageBox.Show("valor del nuevo registro    "+id);

但收到错误错误 [HY000] [Sybase][ODBC 驱动程序][SQL 任何地方] 不能在批处理中使用主机变量

你不能同时执行2个语句并将第二个语句的值取到一个变量中。

你需要一个一个执行。我不确定您使用的是哪种语言,但类似下面的内容应该可以。

cmd_.CommandText = @" insert into table(...) 
                     VALUES
                     (?,?,...,?)";
cmd_.ExecuteScalar();
cmd_.CommandText = @"select @@Identity";
Int32 id = Convert.ToInt32(cmd_.ExecuteScalar());
                MessageBox.Show("valor del nuevo registro    "+id);