我无法使用IN子句执行open查询,同样的查询是使用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'和employeeid in('00116795')“for 对链接服务器的OLE DB提供程序“ADsDSOObject”执行 “ADSI”。
如果我用等于运算符替换IN
子句,它可以正常工作。
有什么建议吗?