sql-server - 通过链接服务器查询时如何执行无错误事务?
问题描述
我有一个同时执行 3 个以上查询的 vb.net 应用程序。特别是INSERT
查询。
代码:
Sub PerformSave()
Using cmd as new SqlCommand(query1,conn)
cmd.ExecuteNonQuery()
End Using
Using cmd as new SqlCommand(query2,conn)
cmd.ExecuteNonQuery()
End Using
Using cmd as new SqlCommand(query3,conn)
cmd.ExecuteNonQuery()
End Using
End Sub
最困扰我的是,我注意到在第一个查询成功执行后,互联网连接丢失,其余交易失败。我想要的只是如果第一个查询失败,其余的也应该失败,原因是所有数据都相互连接但存储在不同的表中。
解决方案
你必须在这里使用交易。您可以将所有代码包含在单个事务中。当您的应用程序在提交之前失去与数据库的连接时,任何仍在运行的事务都将回滚并终止。请参阅以下链接以了解有关事务的更多信息 https://docs.microsoft.com/en-us/sql/t-sql/language-elements/transactions-transact-sql?view=sql-server-ver15
推荐阅读
- r - 如何避免 autoplot() 函数中的间隙并更改曲线的颜色
- php - 函数错误中的 MySQL 调用过程
- c# - GroupBy 动态嵌套对象中的多个属性
- python - Python - 在代码执行之前等待条件为真的最佳实践是什么?脚本需要持续运行
- c# - 为 web api 2.2 配置 swagger 的最简单方法是什么?
- javascript - 如何从 JSON 对象动态填充模板
- java - 运行项目时如何解决Hibernate的错误?
- wpf - UI 在批量创建对象时冻结,即使使用任务
- mysql - 如果在 INSERT 上未设置字段,则触发器的行为很奇怪
- c# - 从 ANSI 转换为 UTF-8 编码