如何使用查询将Active Directory数据导入SQL Server表?

时间:2015-07-28 05:03:38

标签: sql-server-2008-r2

CREATE TABLE T_AD_Data
(
    lab_sAMAccountName varchar(100),
    lab_displayName varchar(100),
    lab_department varchar(100),
    lab_physicalDeliveryOfficeName varchar(100), 
);

INSERT INTO T_AD_Data
   SELECT * 
   FROM OpenQuery (ADSI,  
                   'SELECT sAMAccountName, displayName, department, physicalDeliveryOfficeName 
                    FROM ''LDAP://lab.com/DC=lab,DC=com'' 
                    WHERE objectClass =  ''User'' ') AS tblADSI

错误:

  

消息7330,级别16,状态2,行1   无法从OLE DBprovider" ADSDSOObject"中获取行。对于链接服务器" ADSI"

1 个答案:

答案 0 :(得分:0)

我知道这是一个非常古老的问题,但是您遇到的问题是由ADSI查询返回超过901条记录引起的。在SQL 2008之前,这并没有引起问题,记录数量有限。但是在SQL 2008或更高版本中,当您达到此限制而不是截断结果时,会出现运行时错误。

使用某种使用多个查询的分页解决方案解决此问题,例如我的回答:https://stackoverflow.com/a/43057890/197090