当我尝试向用户查询AD时,出现以下错误:
无法从OLE DB提供程序“ ADsDSOObject”获取链接服务器“ ADSI”的行。
我认为是由于1000行限制(或SqlServer 2008中的901行)导致的问题。我可以分页查询,但我正在寻找一种解决方法,一次可以检索1000多个。
如果有帮助,我正在使用SqlServer 2008 R2。这是我的查询>
SELECt samaccountname AS Account, ISNULL(givenName, '''') AS givenName, ISNULL(SN, '''') AS SN, ISNULL(DisplayName, '''') as DisplayName, ISNULL(Title, '''') AS Title FROM OpenQuery(ADSI, 'SELECt SamAccountName, givenName, SN, DisplayName, Title FROM ''LDAP://corpdomain.corp'' WHERe objectClass = ''User'' and (SN = ''*'' or givenName = ''*''
我的解决方法有任何想法吗?
编辑-经过进一步检查,我意识到我也无法正确分页此查询。>是否有人对解决方案有任何建议,可以使我分页结果,或者可以使我返回大于901的变通办法?
我只是通过最佳地应用页面调度解决了我面临的相同问题(并且我能够成功地从AD检索大约5万个登录名,并且从AD域中获取单个登录帐户也不失踪):
您需要通过遍历属性的字符来解决ADSI查询限制。在此处查看解决方案:http
:
//www.sqlservercentral.com/Forums/Topic231658-54-1.aspx#bm1249991
通过编写
SELECT TOP 901 ...IN PLACE OF JUST解决了该错误
SELECT。
是的,此问题与使用SqlServer 2008 R2有关。从2005年到2008年数据库迁移后,我遇到了这个问题,因为在SQL Server
2008中,限制为901行,而在SQL Server 2005中限制为1000行(不同之处是我们需要编写select TOP 901,而不是在SQL
Server 2005中是必需的,否则程序将失败并显示错误)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)