Мне нужна помощь с логикой, мне нужно запросить 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, потому что в противном случае я получаю ошибку!
У кого-нибудь есть идеи, как я могу скачать все эти записи?