2010-12-10 3 views
0

J'ai un proc qui charge une table d'utilisateurs et, ce faisant, fait une association entre les utilisateurs et leurs gestionnaires. J'ai la sélection simple ci-dessous pour comprendre maangerId pour chaque enregistrement d'utilisateur. Je vois qu'il y a un gestionnaire qui devrait être assigné à un utilisateur mais l'utilisateur obtient un blanc et l'assignation de managerId est manquante.sql n'évaluant pas la comparaison de chaînes égales correctement

DECLARE @managerId INT  
SET @managerId = NULL  

IF @CorpManagerDN IS NOT NULL  
BEGIN  

IF EXISTS (SELECT 69 FROM Employees WITH(NOLOCK) WHERE CorpManagerDN = @CorpManagerDN)  
BEGIN  
    SELECT @managerId = EmployeeId FROM Employees WHERE CorpDN = @CorpManagerDN 
END  
END 

le userId est un champ d'auto incrmenting pour que fonctionne bien, et le champ ManagerID est rempli avec la logique ci-dessus. je remarque parfois je reçois des valeurs ManagerID vides quand je vois des valeurs CorpManagerDN comme

CN = Tsahalis \, Peter NBKPVUD, OU = Pré-BAND, OU = Comptes, OU = BAND, DC = corp, DC = bankofamerica , DC = com

et je vois la valeur CORPDN du gestionnaire comme

CN = Tsahalis \, Peter NBKPVUD, OU = pré-BAND, OU = Comptes, OU = BAND, DC = corp, DC = bankofamerica, DC = com

mais l'évaluation sql ne correspond pas à eux?

+0

ce qui est votre classement du serveur sql – anivas

Répondre

1

Ils semblent égaux me

select 
case when 
    'CN=Tsahalis\, Peter NBKPVUD,OU=Pre-BAND,OU=Accounts,OU=BAND,DC=corp,DC=bankofamerica,DC=com' 
     = 'CN=Tsahalis\, Peter NBKPVUD,OU=Pre-BAND,OU=Accounts,OU=BAND,DC=corp,DC=bankofamerica,DC=com' 
    THEN 1 
    else 0 
END 
Questions connexes