Я создаю отчет в SSRS, который возвращает кучу данных, один из столбцов, которые мне нужно вернуть, является значением из Active Directory. У меня есть запрос, который получает значение, которое я хочу передать в подзапрос, который выглядит в Active Directory.SQL Server OpenQuery - Передача результата из основного запроса SELECT в подпроцесс
То, что я до сих пор выглядит примерно так (упрощенный):
DECLARE @UserID int
SELECT @UserID = UserID FROM dbo.Users As TEST WHERE (RecordID = 123456)
(SELECT displayName FROM OpenQuery (
ADSI,
'SELECT displayName
FROM ''LDAP://DC=company,DC=local''
WHERE objectCategory=''user'' AND extensionattribute5='' [email protected]+ ''
')) AS LoggedBy
FROM dbo.UserRecords WHERE UserID = 1
Проблема, однако, когда я использую @UserID в подзапроса выходной псевдоним «LoggedBy» всегда возвращает «Null». Если я выберу параметр и вручную наберу значение, которое имеет параметр, он отлично работает.
Похоже, что я не могу получить параметр @UserID из основного запроса в подзапрос. неужели интересно, чего мне здесь не хватает?
А я не понял, что OPENQuery не будет поддерживать переменные - вот почему! Спасибо, что показал мне свет на это :) – Livewire