2008-09-17 19 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

當你耗盡上面提到的所有選項後,我會查看行和表鎖。如果是這種情況,它應該返回一個錯誤,說它遇到了一個鎖。你正在運行一個可能吞嚥錯誤的應用程序嗎?

相關問題