2010-12-10 58 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