2010-12-10 91 views
0

我有一个加载用户表的过程,这样做会使用户和他们的管理员之间建立联系。我有下面的简单选择来找出每个用户记录的maangerId。我看到有一个经理应该分配给一个用户,但用户得到一个空白,并且managerId的分配丢失。SQL没有正确评估字符串的相等比较

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 

的用户id是一个自incrmenting字段,以便很好工作的,并且经理ID字段被填充有上述的逻辑。我注意到有时我得到的空白经理ID值当我看到像

CN = Tsahalis \,彼得 NBKPVUD,OU =预BAND,OU =帐户,OU = BAND,DC =公司,DC = bankofamerica CorpManagerDN值,DC = COM

,我看到像

管理者的CORPDN值

CN = Tsahalis \,彼得 NBKPVUD,OU =预BAND,OU =帐户,OU = BAND,DC =公司,DC = bankofamerica,DC = com

但sql评估不符合他们?

+0

什么是您的SQL Server排序规则 – anivas 2010-12-11 13:01:18

回答

1

他们似乎等于我

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