OpenQuery Query Active Directory более 200 тыс. Записей - PullRequest
0 голосов
/ 06 ноября 2018

Мне нужна помощь с логикой, мне нужно запросить Active Directory, чтобы получить EmployeeID, Name, Email и вставить результат в таблицу 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 голосов
/ 06 ноября 2018

Некоторое время назад я работал со связанными серверами AD, и я не мог вспомнить, чтобы у меня возникали подобные проблемы. Можете поделиться ошибкой? Вероятно, лучший вариант - посмотреть, что вызывает это, и устранить основную причину.

В случае, если устранить проблему невозможно, я думаю, что сейчас нужно сначала вставить эти 900 записей, а затем добавить сравнение для лучших 900, которых нет в вашей уже вставленной таблице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...