2012-01-26 1 views
4

J'ai un modèle Django "Utilisateurs" lié à une table de base de données MS SQL Server existante. Je lis la table ainsi:Comment assurer un SQL comme NOLOCK lors de l'utilisation des requêtes de modèle Django

Users.objects.filter(userid='xyz').filter(status='active') 

Je veux savoir ce que les constructions de verrouillage serait-ce à traduire, comme dans ce genre serait d'une lecture Verrouillez la table? En SQL j'aurais fait:

SELECT * from users (nolock) where userid='xyz' and status='active' 

Existe-t-il un moyen de spécifier explicitement un "nolock" via les requêtes du modèle Django?

J'ai beaucoup recherché dans la documentation Django ainsi que dans la documentation de django-pyodbc sans aucun succès.

Merci.

p.s .: Utilisation des pilotes django-pyodbc et pyodbc

+0

Curieux de savoir pourquoi l'indice NOLOCK est nécessaire dans ce scénario? Ou est-ce juste un genre de question? – Bryan

+0

J'ai simplifié la requête pour poser la question, c'est plus complexe. Bon à savoir aussi :) – Sid

+0

Assez juste:) ... FWIW Je pense que vous devrez recourir à SQL brut – Bryan

Répondre

1

Vous pouvez créer une vue:

create view dbo.vw_Users 
as 
select col1 
,  col2 
,  ... 
from dbo.Users with (nolock) 

Et Django ont lu de la vue au lieu de la table.

+0

Ouais je sais que je peux le faire ou aussi utiliser du SQL brut mais je voulais savoir s'il y avait un moyen d'utiliser les constructions de programmation de modèle de Django et de forcer un NOLOCK. Merci quand même. – Sid

Questions connexes