Sql 查询在不同的选项卡中返回不同的结果

Posted

技术标签:

【中文标题】Sql 查询在不同的选项卡中返回不同的结果【英文标题】:Sql queries returning different results in different tabs 【发布时间】:2014-10-18 17:04:31 【问题描述】:

我一直在一个查询窗口上执行一些 SQL 命令(各种插入、更新和删除),当我在同一个查询窗口中检查结果时,这些查询执行了,但是当我在其他命令窗口中检查关于命令的结果,就好像我什么都没执行过一样。

例如,在我原来的查询窗口中

DELETE FROM emBaseSocios

然后我执行

SELECT * FROM emBaseSocios

当然什么也不返回

但是如果我打开另一个指向同一个数据库的窗口并执行

SELECT * FROM emBaseSocios

它返回删除之前存在的所有行,就像什么都没发生一样 当我尝试在那里删除时会花费太多时间

这可能是什么问题?

【问题讨论】:

你在使用事务吗? 添加“提交;”删除后。 如果您使用的是快照隔离级别,这是意料之中的 - 在您提交之前,第二个连接不会知道您的更改任何信息 b> 他们在第一个查询窗口! 我使用了一些没有事务的查询和已经提交的查询。 在第一个查询窗口中,运行WHILE @@TRANCOUNT > 0 COMMIT; 【参考方案1】:

“这可能是什么问题?”

问题 cmets 中的事务性内容当然“可能”是问题所在。但是,另一种可能性是这些窗口实际上并未连接到同一个 DB/Instance/Server。如果您有多个数据库副本或您在它们之间切换的非常相似的数据库,则完全有可能混淆——我已经做到了。

您可以采取的一种方法来帮助自己避免这种情况,即为每个连接自定义状态栏的颜色。 Here are some instructions.

【讨论】:

以上是关于Sql 查询在不同的选项卡中返回不同的结果的主要内容,如果未能解决你的问题,请参考以下文章

从不同选项卡中的数据表中获取值

在导航选项卡中显示数据库查询的结果

如何使用 React Navigation 5.x 在不同的选项卡中重置堆栈

参考从中复制数据的选项卡,将不同选项卡中的数据整理到单个选项卡

laravel - 在正确的选项卡中显示验证错误

使用 2 个不同选项卡中的按钮以不同名称保存同一工作簿