【发布时间】: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