gpt4 book ai didi

java - SQL 服务器异常 : A result set was generated for update

转载 作者:搜寻专家 更新时间:2023-10-31 08:17:02 25 4
gpt4 key购买 nike

我正在尝试将一条新记录插入到 MS SQL 数据库中,但出现了一个我以前从未见过的异常​​。当我调用 executeUpdate 时,抛出以下异常:

com.microsoft.sqlserver.jdbc.SQLServerException: 为更新生成了结果集。

这是产生错误的 Java 代码:

// addComment method adds a new comment for a given requestId
public CommentBean addComment(CommentBean comment) {
PreparedStatement stmt = null;
INative nat = null;
Connection conn = null;

try {
nat = dbConn.retrieveNative();
conn = (Connection)nat.getNative("java.sql.Connection");
stmt = conn.prepareStatement(ADD_COMMENT);
stmt.setInt(1, comment.getRequestId());
stmt.setString(2, comment.getComment());
stmt.setString(3, new SimpleDateFormat("MM/dd/yyyy").format(comment.getDateCreated()));
stmt.setString(4, comment.getCreatedBy());
comment.setCommentId(stmt.executeUpdate()); // exception
} catch(Exception ex) {
System.err.println("ProjectRegistration::SQLDAO - addComment");
ex.printStackTrace();
} finally {
try {
if (stmt != null) stmt.close();
} catch (Exception e) {}
}

return comment;
}// end addComment

其中 ADD_COMMENT 定义为字符串:

private static final String ADD_COMMENT = "INSERT INTO RequestComments OUTPUT INSERTED.commentId VALUES(?,?,?,?)";

为了完整起见,表格定义为:

CREATE TABLE RequestComments (
commentId int NOT NULL PRIMARY KEY IDENTITY(1,1),
requestId int FOREIGN KEY REFERENCES Requests(requestId),
comment varchar(400),
dateCreated date,
createdBy varchar(12)
);

我不认为我在这里做任何非常复杂的事情,但我想不出为什么我会得到这个异常。我在同一个类中有一个方法,它执行完全相同类型的插入(实际上是相同的查询,但表名和值的数量不同),并且没有问题。有没有人对如何解决这个问题有任何想法?

最佳答案

此特定错误也可能由 INSERT 触发器引起,该触发器将 SELECT 语句作为触发器代码的一部分。

要测试是否是这种情况,您可以尝试:

  • 使用 executeQuery(),而不是 executeUpdate() - 并显示结果。
  • 在 MySQL Workbench、SQL Server Management Studio 或适用于您的 DBMS 的任何数据库设计工具等工具中执行插入,以查看是否返回结果。

相关:sql server error "A result set was generated for update"

我希望这可以帮助其他人查看与我相同的错误消息。我的解决方案是接受对​​ executeQuery() 的调用,尽管它只处理一个潜在问题,而不是修复它。

关于java - SQL 服务器异常 : A result set was generated for update,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22360730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com