我无法使用 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
用相等运算符替换子句,它工作正常。
有什么建议吗?