SQL Server&Active Directory間の異種結合の作成
Fabrikam社のすべての従業員は、6か月ごとにレビューされます。 レビュー評価は、SQL Serverの人事データベースに格納されます。 このデータのビューを作成するには、エンタープライズ管理者のJoe Wordenが最初に従業員の業績レビューテーブルを作成する必要があります。
Joeは、SQLクエリアナライザーでEMP_REVIEWというテーブルを作成します。このテーブルには、従業員の名前、レビューの日付、および従業員が受け取った評価を保持する3つの列が含まれます。
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