Dans quelles situations inciteriez-vous différents utilisateurs à voir différentes lignes d'une table sur SQL Server?

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

  •  01-07-2019
  •  | 
  •  

Question

SQL Server version 2000.

Plusieurs ordinateurs de bureau parlent à MSSQL Server. Lorsque vous recherchez un enregistrement spécifique, certains ordinateurs de bureau renvoient les données correctes, mais d'autres non.

La commande SQL est "SELECT * FROM PODORDH WHERE ([NO] = 6141)". Sur un ou deux ordinateurs de bureau, ceci renvoie un enregistrement. Sur le serveur et sur tous les autres bureaux, aucun enregistrement n'est renvoyé.

Quels domaines dois-je examiner? Qu'est-ce qui provoquerait cela?

Était-ce utile?

La solution

Cette erreur provient probablement d'un utilisateur qui a supprimé / inséré cet enregistrement dans une transaction mais n'a pas encore validé ladite transaction.

Autres conseils

Vérifiez la base de données et le serveur auxquels vous vous connectez sur chaque machine - la requête est suffisamment simple pour que vous ayez la même réponse partout, SAUF SI vous vous connectez à différentes bases de données ou serveurs.

Si seulement UN poste de travail renvoie la ligne, il semblerait que le poste de travail comporte une transaction ouverte qui n'a pas été validée.

Sinon, est-il possible que les niveaux d’isolation soient différents pour différents postes de travail, c.-à-d. Certains verront-ils des données non validées et d'autres non?

Si vous vous connectez au serveur en tant qu'utilisateur différent de chaque ordinateur, vous pouvez consulter les autorisations de la table que vous sélectionnez.

Si certains utilisateurs, mais pas d'autres, ont accès à cette table, vous pouvez obtenir le résultat que vous décrivez.

Après avoir épuisé toutes les options mentionnées ci-dessus, je me pencherais sur les verrous de rangée et de table. Si tel est le cas, il devrait retourner une erreur indiquant qu'il a rencontré un verrou. Utilisez-vous une application qui pourrait être en train d’avaler des erreurs?

Peut-être qu'un ou deux utilisateurs qui trouvent des enregistrements utilisent un nom de schéma différent et donc des tables différentes. IE, la plupart des utilisateurs utilisent dbo.PODORDH, mais un ou deux utilisateurs utilisent otheruser.PODORDH.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top