我刚刚开始将JDBC集成到我的工作中。
我正在尝试在JDBC中执行以下SQL行。
DECLARE @a int
SET @a = 1
UPDATE ptable SET p = @a, @a=@a+1 WHERE joined = 1
Java代码如下所示:
c = "DECLARE @a int "
+ "SET @a = 1 "
+ "UPDATE ptable SET p = @a, @a=@a+1 WHERE joined = 1";
try {
stmt.executeQuery(c);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我不确定我是否使用了错误的方法。基本上我有一个存储整数值的列p,无论单元格中的数字是多少,我都希望每行增加1。当我尝试以增量更新每一行时,它会占用第一行并将每一行设置为相同的值,而不是逐个递增。
答案 0 :(得分:0)
您的sql查询看起来不正确您要完成的任务(我假设您使用的是sql server)。如果你想将每一行增加1,无论单元格中的数字是什么,你的查询都应如下所示:
DECLARE @a int
SET @a = 1
UPDATE ptable SET p = p + @a
WHERE joined = 1
你想取p并递增1,在这种情况下,我不确定为什么你需要变量@a
你只能使用1
UPDATE ptable SET p = p + 1
WHERE joined = 1
在java代码中,它看起来像:
c = "UPDATE ptable SET p = p + 1\n"
"WHERE joined = 11";
try {
stmt.executeQuery(c);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}