我在Java中使用一個PreparedStatement更新,並在2008年MSSQL數據庫替換記錄如下: 不正確的語法
ps = settings.conn.prepareStatement("UPDATE table SET ? = replace((?), (?), (?)) ");
我然後在參數傳遞如下:
String[] columns= {"a", "b", "c", "d"};
for (int i = 0; i < columns.length; i++) {
ps.setString(1, columns[i]);
ps.setString(2, columns[i]);
ps.setString(3, " " + oldName.trim() + " ");
ps.setString(4, " " + newName.trim() + " ");
ps.addBatch();
batchSize++;
if (batchSize > 5000) {
batchSize = 0;
ps.executeBatch();
}
}
我得到了很多的錯誤消息稱近@po不正確的語法。從this question我知道Top語句在參數化語句中使用時應該用括號括起來。
難道這是更新聲明還需要一些額外的格式之前,我可以使用它?或者是其他事情出錯了?
我用來執行窗體'更新表SET的更新? =?哪裏? =?很多,所以應該有可能我認爲 – Freek8 2012-01-31 20:31:34
@ Freek8:真的嗎?用什麼數據庫系統,什麼語言? – 2012-01-31 20:34:23
使用JDBC和MSSQL – Freek8 2012-01-31 20:36:12