【问题标题】:How to update records of a database permanently?如何永久更新数据库的记录?
【发布时间】:2019-05-17 02:38:28
【问题描述】:

我正在使用 DBeaver 连接到 Microsoft SQL Server 数据库。我想将所有用户的登录计数更新为零。

我尝试运行update 命令如下

UPDATE app.dbo.users SET login_count = 0 WHERE 1

当我在用户表上运行select 时,它显示登录计数已更新为0。但是当我断开与数据库的连接并再次查看记录时,它已恢复为原始值.

如何使用 DBeaver 永久更改它?这可能与“查看会话”有关。

【问题讨论】:

  • 是否有其他人再次执行更新操作?你确定你写的更新 SQL 是对的吗?通常应该写成 'UPDATE app.dbo.users SET login_count = 0 WHERE login_count = 1'。
  • 我不这么认为,因为我已经停止了所有使用数据库的服务。是的,该命令是正确的,因为它在我断开连接之前确实反映了它。

标签: sql sql-server database admin dbeaver


【解决方案1】:

默认情况下,SQL Server 设置为自动提交事务。但是,数据库可能处于手动提交模式(请参阅here)。

如果您在会话中运行update并且更新尚未提交,您将在会话中看到更改。但它们不会在任何其他会话中可见。

解决方案是在update 之后运行commit

【讨论】:

    猜你喜欢
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    相关资源
    最近更新 更多