OpenQuery查询Active Directory超过20万条记录

时间:2018-11-06 16:49:07

标签: sql sql-server active-directory openquery

我需要一些逻辑上的帮助,我需要查询Active Directory以获取EmployeeIDNameEmail并将结果插入到SQL Server表中。

之所以这样做是因为有太多的记录,我在像这样的小子查询中中断了此任务:

set @sql=
'SELECT TOP 900 EmployeeID as [SID], DisplayName as [Name], mail as [email] 
 FROM OPENQUERY (
 ADSI,''SELECT EmployeeID, DisplayName, mail
 FROM  ''''LDAP://.local/OU=OU=Students,DC=labsc,DC=local''''
WHERE 
objectClass = ''''user''''
and GivenName < ''''B''''
  '') as C
  UNION ALL
  SELECT TOP 900 EmployeeID as [SID], DisplayName as [Name], mail as [email] 
  FROM OPENQUERY (
   ADSI,
 ''SELECT EmployeeID, DisplayName, mail
   FROM ''''LDAP://cal''''
     WHERE 
     objectClass = ''''user''''
     and GivenName >= ''''B''''
     and GivenName < ''''C''''
     '') as C

直到Z,但是问题在A和B之间,可能有成千上万条记录,而我刚获得前900条记录,因为否则我会出错!

有人知道如何下载所有这些记录吗?

1 个答案:

答案 0 :(得分:0)

前一段时间,我与AD链接服务器一起工作,我不记得遇到这种问题了。您可以分享错误吗?最好的选择可能是查看导致该问题的原因并解决根本原因。

如果无法解决该问题,我现在想的是先插入这900条记录,然后为已经插入的表中不存在的前900条记录添加一个比较。