2008-09-17 52 views
1

SQL Server版本2000.在什么情况下你会得到不同的用户在SQL Server的表上看到不同的行?

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

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

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

回答

4

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

3

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

2

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

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

2

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

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

0

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

1

当你耗尽上面提到的所有选项后,我会查看行和表锁。如果是这种情况,它应该返回一个错误,说它遇到了一个锁。你正在运行一个可能吞咽错误的应用程序吗?

相关问题