bgs*_*264 7 linked-server active-directory sql-server-2008
在SQL Server 2008(版本10.0.4000)中,我已经创建了一个到Active Directory服务器的链接服务器.
这个查询:
select TOP 901 *
from openquery(adsisca, '
select givenName,
sn,
sAMAccountName
from ''LDAP://10.1.2.3:389''
where objectCategory = ''Person''
and
objectClass = ''InetOrgPerson''
')
Run Code Online (Sandbox Code Playgroud)
作品.
但是,更改查询并尝试检索902行不会:
select TOP 902 *
from openquery(adsisca, '
select givenName,
sn,
sAMAccountName
from ''LDAP://10.1.2.3:389''
where objectCategory = ''Person''
and
objectClass = ''InetOrgPerson''
')
Run Code Online (Sandbox Code Playgroud)
错误是:
消息7330,级别16,状态2,行1无法从OLE DB提供程序"ADSDSOObject"获取链接服务器"adsisca"的行.
我发现其他人在论坛上讨论相同的问题,他们从来没有修复它,只是围着它编写多个视图并将它们联合在一起.
是否有一个更优雅的修复,是否有一个设置,我可以在某处更改以检索超过901行?
小智 7
使用union来规避限制..
像这样 :
select TOP 901 *
from openquery(adsisca, '
select givenName,
sn,
sAMAccountName
from ''LDAP://10.1.2.3:389''
where objectCategory = ''Person''
and
objectClass = ''InetOrgPerson''
and
sAMAccountName < ''m''
')
union
select TOP 901 *
from openquery(adsisca, '
select givenName,
sn,
sAMAccountName
from ''LDAP://10.1.2.3:389''
where objectCategory = ''Person''
and
objectClass = ''InetOrgPerson''
and
sAMAccountName >= ''m''
')
Run Code Online (Sandbox Code Playgroud)
您需要更改 Active Directory 中的 MaxPageSize 设置。为此,您需要使用 Ntdsutil.exe,您可以在运行命令中键入该程序,然后按照以下步骤操作
LDAP policies,然后按 Enter。Set MaxPageSize to 2000。-> 或任何你想要的数字Show Values Commit Changesq| 归档时间: |
|
| 查看次数: |
25950 次 |
| 最近记录: |