OpenQuery使用'IN'子句抛出错误

时间:2012-09-20 09:53:51

标签: sql ldap

我无法使用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子句,它可以正常工作。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)