我在SQL Anywhere数据库上有这个insert语句,对于我使用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);
但出现错误ERROR [HY000] [Sybase] [ODBC驱动程序] [SQL Anywhere]批处理中可能未使用主机变量
答案 0 :(得分:1)
您不能同时执行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);