私は次のようにMSSQL 2008データベース内のレコードを更新し、交換するためにJavaでPreparedStatementを使用しています: 正しくない構文
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ステートメントがパラメータ化されたステートメントで使用されている場合は、大括弧で囲む必要があることを理解します。
私はそれを使用する前に、Updateステートメントもいくつかの追加のフォーマットが必要なのでしょうか?それとも何か他にうまくいかないのですか?
私は、 'UPDATE table SET? =?どこですか? =?たくさんあるので、私は可能だと思います – Freek8
@ Freek8:本当ですか?どのデータベースシステムで、どのような言語で? –
JDBCとMSSQLの使用 – Freek8