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”的行

最佳答案

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

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

09-13 13:18