1

SQL 服务器版本 2000。

我们有一堆桌面与 MSSQL Server 对话。在查找特定记录时,一些桌面会返回正确的数据,但有些则不会。

SQL 命令是“SELECT * FROM PODORDH WHERE ([NO]=6141)” 在一个或两个桌面上,这会返回一条记录。在服务器和所有其他桌面上,不返回任何记录。

我需要查看哪些区域?什么会导致这种情况发生?

4

6 回答 6

4

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

于 2008-09-17T13:45:34.973 回答
3

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

于 2008-09-17T13:42:58.270 回答
2

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

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

于 2008-09-17T13:48:38.773 回答
2

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

如果某些用户而不是其他用户有权读取该表,您可能会得到您描述的结果。

于 2008-09-17T13:50:18.567 回答
1

After you exhaust all the options mentioned above, I would look into row and table locks. If this is the case it should return an error saying it encountered a lock. Are you running an application that could be swallowing errors?

于 2008-09-17T16:29:30.710 回答
0

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

于 2008-09-17T13:57:25.990 回答