【发布时间】:2015-08-28 07:51:22
【问题描述】:
我有这张交易表Record,下面我需要从 ADSI 获取用户的电子邮件地址
ID DisplayName
1 Surname,User1 [Department]
2 Surname,User2 [Department]
ADSI 查询:
DECLARE @sql nvarchar(MAX)
DECLARE @Mail varchar(255)
set @sql = 'SELECT TOP 1 @Mail = mail
FROM openquery(ADSI ,''
SELECT Name, displayName,givenname,distinguishedName, SAMAccountName ,mail
FROM ''''LDAP://DC=Domain,DC=org'''' WHERE displayName = '''''+@DisplayName+'''''
'')'
--print @sql
exec sp_executesql @sql,N'@Mail varchar(255) OUTPUT',@Mail OUTPUT
SELECT @Mail
期望的输出:
ID DisplayName EmailAdrress
1 Surname,User1 [Department] User1.Surname@test.com
2 Surname,User2 [Department] User2.Surname@test.com
我创建了 UDF,但出现错误,在 UDF 中无法使用动态查询
只有函数和一些扩展存储过程可以在函数内执行。
感谢任何帮助。
谢谢!
【问题讨论】:
标签: sql sql-server tsql active-directory