【问题标题】:What are the full requirments for a SQL Server Transaction to run?运行 SQL Server 事务的全部要求是什么?
【发布时间】:2020-07-27 14:15:21
【问题描述】:

正如标题所说,让 SQL 事务与 SQL Server 一起运行的全部要求是什么?事务最终会变得更加复杂,但到目前为止,调试过程已经让我剥离了所有逻辑(几乎把我的头发扯掉了)

一些可能有帮助的前期信息。

  • 正在尝试从 DBeaver 本地运行。
  • 肯定连接到正确的数据库,事务代码本身就可以正常工作。
  • 将代码作为脚本执行 Opt + X(所以\n 不会区分语句)。

当前代码如下:

BEGIN TRANSACTION Test_Transaction

    SELECT COUNT(*) FROM schema.table;

COMMIT TRANSACTION

现在真的就这么简单,我得到的错误是:

SQL Error [42601]: ERROR: syntax error at or near "SELECT"
  Position: 21

这表明SELECT 存在语法错误,但我在事务中输入的内容并不重要,它只是在BEGIN TRANSACTION Test_Transaction 行之后的第一个输入时失败,这就是为什么我认为我'错过了让它们运行的​​ SQL 事务的要求。

【问题讨论】:

  • 看看如果在 BEGIN TRANSACTION 行的末尾添加 ; 会发生什么,
  • 该错误看起来不像是 SQL Server 错误。 SQL Server 的错误代码没有那么高:Database engine errors
  • 您有什么理由为您的交易命名?这不是必需的,除非您打算创建保存点。您可以简单地尝试 CREATE TRAN 本身。除此之外,您的陈述似乎没有任何语法错误。您是否考虑过它可能是您正在使用的 IDE?
  • 这是一个很好的观点@Jason,前面的代码确实需要一个保存点,这是一个剩余的。原来这是一个 IDE 问题,谢谢。

标签: sql sql-server dbeaver sqltransaction


【解决方案1】:

来自@Larnu 在 cmets 中的超级位置!显示的错误代码对于 SQL Server 来说不够高,因此,在检查我的连接设置时,我意识到我在 DBeaver 中的数据库连接使用 Postgres 作为其驱动程序。改变这个让事情开始运转。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-19
    • 2020-02-24
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    相关资源
    最近更新 更多