我用MS SQL Server 2008开发了一个Java应用程序作为数据库。我正在使用微软网站上提供的JDBC驱动程序。
到目前为止工作正常。但随着负载的增加,出现了很多SQLServerException。
查询
INSERT INTO ANSWERS VALUES ('pd','GK002','A','B','','','Yes','QUIZ012')
例外是
com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near 'Contribution'.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:197)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1493)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:775)
at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:676)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4575)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1400)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:179)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:154)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeUpdate(SQLServerStatement.java:633)
at nina.dbinterface.FinalDBInteraction.updateUserAnswers(FinalDBInteraction.java:93)
at nina.dbinterface.FinalDBInteraction.updateDatabase(FinalDBInteraction.java:43)
at nina.user.ui.MainWindow.submitQuiz(MainWindow.java:1032)
at nina.user.ui.MainWindow.actionPerformed(MainWindow.java:917)
我在查询中的任何地方都没有使用“贡献”这个词。那么为什么这个错误?任何解决方案?
答案 0 :(得分:1)
我建议运行profiler trace来捕获在发生这些错误时正在对数据库执行的SQL批处理。
在不确切知道命令如何发送到SQL Server的情况下(例如存储过程,应用程序中的内联SQL,使用ORM或其他“中间件”,动态SQL等),很难给出答案。
干杯, 戴夫