问题标签 [sqltransaction]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - T-SQL - 结合 Try-Catch 和错误处理(事务)
我正在使用可重复读取隔离级别处理事务。我想在此事务中合并 Try-Catch 和错误处理程序功能。当我运行代码时,我收到一条错误消息:Msg 102, Level 15, State 1, Line 18 Incorrect syntax near 'BEGIN'。消息 102,级别 15,状态 1,第 23 行“@errnum”附近的语法不正确。
如何成功完成此交易?或 编写此交易的正确方法是什么?
这是我现在的工作:
mysql - 如何锁定行以进行更新,然后使用 MySQL 中的变量更新表
我有一个采购表,用于存储商店收到的所有订单。在某些情况下,我必须以不同的成本重新订购商品。当我进行销售交易时,我需要能够使用由购买日期确定的 FIFO(先进先出)系统来确定所售商品的总成本。
这是我的桌子的样子
使用上面的数据,如果有人想购买 40 个 item_id = 1 的单位,那么成本计算如下 (10 X 1.00) + (20 X 0.90) + (10 X 0.80) = 36 。item_id = 1 的此交易的总成本为 36 美元。
但现在,我需要 availableQty
使用新的可用值更新该列。
根据列中的值availableQty
,第 1 行和第 2 行在列中的值应为 0, availableQty
对于同一列的第 3 行,应为 40。
为了计算交易成本,我可以编写这个查询来计算成本。
但是如何使用新的 totalAvailable 值更新每一行?
所以最终的记录需要看起来像这样
所以我的问题是这样的
- 如何正确执行 UPDATE?
- 如何使用查询查询锁定行以进行更新,以便在提交此事务之前没有其他事务可以更改该值。请注意,查询 select 和 update 都在同一个事务中。
- 有没有更好的方法来计算成本?
我尝试了以下查询来更新值
-- 这给了我这一行的语法错误@myQty := CASE WHEN @myQty > availableQty THEN @myQty - availableQty ELSE @myQty END
我也试过这个查询
c# - 子父事务回滚
我有一个场景,我必须处理多个.sQL
文件,每个文件包含 3-4 个插入或更新查询,现在当文件中的任何查询失败时,我执行rollback
整个事务意味着我们将回滚整个文件,以及之前执行的所有其他文件该文件将被提交,我想要一个选项,用户可以在rollback
整个事务中执行一个文件中的所有查询以及在包含错误的特定文件之前执行的所有文件,如果用户想跳过那个有错误的特定文件,我们将只使用rollback
单个文件包含错误所有其他文件将被提交,我现在正在使用 SQL Transaction,不,TransactionScope
但显然我也可以TransactionScope()
根据需要和可能切换,目前我的代码伪(我想要的)如下
c# - SQLTransaction.Commit() 如何工作?
前几天,我研究SqlTransaction
了一下,我知道了它的目的SqlTransaction.Commit()
——它应该“提交数据库事务”。- MSDN。
但它是如何工作的?
例如:我写了一段这样的代码:
在这种情况下,SQL Server 位于另一台计算机上。
我猜:commit 方法有两个周期,周期 1:当我执行时tran.Commit()
,编译器会向 SQL Server 发出信号并与 SQL Server 对话:“我没事,请帮我提交(更改)数据”,然后 SQL Server 将执行编译器的请求。阶段2:当SQL Server完全执行编译器的请求时,执行结果将返回给我们的编译器。当我们的编译器收到执行结果时,我们的编译器将继续编译下一个命令行(“return true”)。
但是如果在第二阶段,连接断开并且执行结果不会传回我们的编译器。在这种情况下,我们的交易成功与否?数据是否保留在 SQL Server 中?
附加问题:我对两期 SQLTransaction.Commit() 的预测是否正确?
谢谢!
postgresql - 查询和触发事务内部的执行顺序
如果在事务内部调用了触发器,则可以保证所有触发器(非约束/非延迟触发器)将在事务中的下一个查询开始之前完成。例如我有下表:
如果名称字段已更新,则在此表上定义的触发器之前的行级别将 is_updated 设置为 True。
我执行以下交易:
会不会是第二个 UPDATE 语句在所有触发器完成之前开始?或者触发器在事务内部运行,带有调用触发器的语句?
UPD1
Postgresql 版本是 9.3。这里是触发器和相关函数源:
vb.net - 事务处理 VB.Net
我有一个程序可以在 2 个查询中将记录插入数据库。我正在那里处理事务。但是我的交易不起作用。执行第一条语句后,如果我关闭程序记录将插入第一个表而不插入第二个表。
但这应该从第一个表回滚。这里有什么问题。
database - 为什么我们必须避免事务数据库中的“不可重复读”?
众所周知,事务数据库中通常有 4 种隔离级别:Read Uncommitted
、Read Committed
和。并且可以避免。
比如Transaction_1有两个select,Transaction_2有一个update,update在两个select之间执行,为什么一定要避免呢?
谁能找到必须避免的应用程序?
是否有一些关于购物和转账的应用程序?Repeatable Read
Serializable
Repeatable Read
Serializable
Nonrepeatable Read
Nonrepeatable Read
android - Android 数据库事务错误处理
如果我正在使用事务执行一组查询,并且其中一个查询未能插入/更新/删除。会发生什么?剩下的查询会默认继续执行吗?
entity-framework - 配置的执行策略“SqlAzureExecutionStrategy”不支持用户发起的事务
我正在使用最新的 v6 实体框架和 UnitOfWork 模式。在过去的几年中,这在服务器上一直很好。
我想迁移到 Azure 托管并使用 SQLAzure,因此开始迁移应用程序。但是我遇到了很多问题。
首先,我间歇性地收到此错误
从服务器接收结果时发生传输级错误。
经过一些谷歌搜索,这似乎很常见,您需要实现自己的SqlAzureExecutionStrategy
- 一切似乎都很好。直到我发现它不支持发起的交易!
然后我偶然发现了这篇博文 - 它概述了确切的问题并提供了如何解决问题的示例代码(或者我认为)。
我完全按照帖子(据我所知)。我有我的 dBconfiguration 类设置,它在应用程序启动时触发了 SetExecutionStrategy。
然后我有一个上面引用的名为“CustomSqlAzureExecutionStrategy”的自定义类,我把它放在下面并覆盖了ShouldRetryOn方法
但是,当我运行我的应用程序时,我仍然遇到与开始时相同的错误,但这次只是指向自定义类?
配置的执行策略“CustomSqlAzureExecutionStrategy”不支持用户发起的事务。
我在这里错过了什么明显的东西吗?或者不明白什么?任何帮助将不胜感激。
更新
通常... StackOverFlow 橡皮闪避。我实际上正确地阅读了它,发现我需要SuspendExecutionStrategy
在我的 UnitOfWork 中手动设置(BeginTransaction 之前和 Commit 之后)。
所以我之前有这个.BeginTransaction()
就在这之后.Commit()
这允许我现在运行应用程序,但我仍然(很少我可能会添加)收到暂时错误消息?
从服务器接收结果时发生传输级错误。
php - PHP PDO 没有活动事务
我尝试使用 PDO 类运行查询并收到此错误消息:"There is no active transaction"
尝试提交时。
这是我的代码:
这个错误的原因是什么?我探索了此类问题的先前帖子,但没有找到任何解决方案。