1

我无法使用 IN 子句执行打开的查询,相同的查询是使用 equal(=) 运算符执行的。以下是我的查询-

DECLARE @SapNO as nvarchar(1000)
SET @SapNO = '''''00116795'''''     
DECLARE @str nvarchar(1000)

SET @str = 'SELECT top 100 Name,employeeid FROM OPENQUERY(ADSI,
''select Name,employeeid  FROM ''''LDAP://ABC.com'''' 
WHERE objectCategory = ''''Person'''' 
AND objectClass = ''''user''''   
AND  employeeid in (' + @SapNO + ')   
'')'

exec sp_executesql @str

上面的查询抛出错误消息-

准备查询“select Name,employeeid FROM 'LDAP://ABC.com' WHERE objectCategory = 'Person' AND objectClass = 'user' AND employeeid in ('00116795')”以针对 OLE DB 提供程序执行时出错链接服务器“ADSI”的 ADsDSOObject”。

如果我IN用相等运算符替换子句,它工作正常。

有什么建议吗?

4

1 回答 1

0

LDAP 不支持IN.

http://msdn.microsoft.com/en-us/library/aa746494(VS.85).aspx

于 2012-09-20T10:01:58.133 回答