SQL Server 版本 2000。

我们有很多桌面与 MSSQL Server 通信。查找特定记录时,某些桌面会返回正确的数据,但有些则不会。

SQL命令是“从podordh中进行选择 *”,其中([no] = 6141)在一两个台式机上,这将返回记录。在服务器和所有其他桌面上,不会返回任何记录。

我需要关注哪些方面?什么会导致这种情况发生?

有帮助吗?

解决方案

此错误可能来自于在事务中删除/插入该记录但尚未提交该事务的用户。

其他提示

检查每台计算机上连接到的数据库和服务器 - 查询非常简单,除非您连接到不同的数据库或服务器,否则您必须在任何地方得到相同的答案。

如果只有一个工作站返回该行,那么听起来该工作站有一个尚未提交的开放事务。

否则,不同工作站的隔离级别是否可能不同,即。有些人会看到未提交的数据,而其他人则不会?

如果您以每台计算机上的不同用户身份连接到服务器,您可能需要查看您所选择的表的权限。

如果某些用户(但其他用户没有权限)有权读取该表,您可能会得到您所描述的结果。

在用尽上述所有选项后,我将研究行锁和表锁。如果是这种情况,它应该返回一个错误,指出它遇到了锁。您是否正在运行一个可能会出现错误的应用程序?

也许查找记录的一两个用户正在使用不同的模式名称,因此使用不同的表。IE 中大多数用户正在使用 dbo.PODORDH,但一两个用户正在使用 otheruser.PODORDH。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top