どのような状況で、SQL Server 上のテーブル内の異なる行が異なるユーザーに表示されるでしょうか?

StackOverflow https://stackoverflow.com/questions/83295

  •  01-07-2019
  •  | 
  •  

質問

SQL サーバー バージョン 2000。

多数のデスクトップが MSSQL Server と通信しています。特定のレコードを検索すると、正しいデータを返すデスクトップもあれば、そうでないデスクトップもあります。

SQLコマンドは、1つまたは2つのデスクトップで「[no] = 6141)から[podordh from podordh from podordh where]です。これはレコードを返します。サーバー上および他のすべてのデスクトップ上では、レコードは返されません。

どの領域に注目する必要がありますか?何が原因でこのようなことが起こるのでしょうか?

役に立ちましたか?

解決

このエラーはおそらく、トランザクション内でそのレコードを削除または挿入したが、そのトランザクションをまだコミットしていないユーザーから発生します。

他のヒント

各マシンでどのデータベースとサーバーに接続しているかを確認します。クエリは非常に単純なので、別のデータベースまたはサーバーに接続している場合を除き、どこでも同じ答えが得られます。

行を返すワークステーションが 1 つだけの場合、そのワークステーションにはコミットされていないオープン トランザクションがあるように見えます。

そうでない場合、ワークステーションごとに分離レベルが異なる可能性はありますか。コミットされていないデータが表示されるものもあれば、表示されないものもありますか?

各マシンから異なるユーザーとしてサーバーに接続している場合は、選択しているテーブルの権限を確認することをお勧めします。

一部のユーザーがそのテーブルを読み取るアクセス権を持っているが、他のユーザーがアクセス権を持っていない場合は、説明した結果が得られる可能性があります。

上記のオプションをすべて実行したら、行ロックとテーブル ロックを検討します。この場合、ロックが発生したことを示すエラーが返されるはずです。エラーを飲み込む可能性のあるアプリケーションを実行していますか?

おそらく、レコードを見つけた 1 人または 2 人のユーザーが別のスキーマ名を使用し、したがって別のテーブルを使用している可能性があります。つまり、ほとんどのユーザーは dbo.PODORDH を使用していますが、1 人か 2 人のユーザーが otheruser.PODORDH を使用しています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top