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 に答える