我用MS SQL Server2008作为数据库开发了一个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)我没有在我的查询中使用“贡献”这个词。那么为什么会出现这个错误呢?有什么解决方案吗?
发布于 2012-03-16 16:18:23
我建议运行profiler trace来捕获发生这些错误时对数据库执行的SQL批处理。
如果不确切知道命令是如何发送到SQL Server的(例如,存储的进程、应用程序中的内联SQL、使用ORM或其他“中间件”、动态SQL等),就很难给出答案。
干杯,戴夫
https://stackoverflow.com/questions/9732223
复制相似问题