在 SQL Server 与 Active Directory 之间创建异类联接

Fabrikam 公司的所有员工每六个月会接受一次审查。 审查评分会存储在 SQL Server 中的人力资源数据库中。 若要创建此数据的视图,企业管理员 Joe Worden 必须先创建员工绩效审查表。

在 SQL 查询分析器中,Joe 将创建一个名为 EMP_REVIEW 的表,其中包含三列来分别保存员工姓名、审查日期以及该员工收到的评分。

CREATE TABLE EMP_REVIEW
(
userName varChar(40),
reviewDate datetime,
rating decimal 
)

然后,Joe 可插入一些记录。

INSERT EMP_REVIEW VALUES('Julie Adam', '2/15/1999', 4 )
INSERT EMP_REVIEW VALUES('Julie Bankert', '7/15/1999', 5 )
INSERT EMP_REVIEW VALUES('Chris Gray', '2/15/1999', 3 )
INSERT EMP_REVIEW VALUES('Chris Gray', '7/15/1999', 4 )

现在,Joe 可将 Active Directory 用户对象联接到 SQL Server 表。

在此示例中,SELECT 语句包含将从目录服务和 SQL Server 中获取的数据列表。 FROM 语句包含将从中获取此信息的已链接目录服务器的名称(在本例中为 viewADUsers)。 WHERE 语句将提供搜索条件。 在此示例中,它会按目录服务中的名称进行搜索,而该名称将设为在上一任务中输入的 SQL userName。

SELECT ADsPath, userName, title, ReviewDate, Rating 
FROM EMP_REVIEW, viewADUsers
WHERE userName = Name

上一命令会同时从 SQL Server 和 Active Directory 获取结果。 AdsPath 和 title 均来自 Active Directory,而 userName、ReviewDate 和 Rating 则来自 SQL 表。 他甚至可为此联接创建另一个视图。

CREATE VIEW reviewReport
AS
SELECT ADsPath, userName, title, ReviewDate, Rating 
FROM EMP_REVIEW, viewADUsers
WHERE userName = Name
GO
SELECT * FROM reviewReport