You are on page 1of 243

Dashboards

Parameters
Seq

Parameter Name
0 Time

Parameter Value
Dec 24 2008 2:35:36:560PM

10 Database

AdventureWorks

20 Procedure Filter

30 Function Filter

40 Table Filter

50 View Filter

60 Trigger Filter

70 Index Filter

Object Distribution

Object Distribution
9% Functions=11

14% Views=17

8% Procedures=9
9% Triggers=11

59% Tables=70

Functions

Procedures

Tables

Triggers

Views

Top Tables by Rows

Top Tables by Rows


121317

120,000

113443

110,000
100,000

Row Count

90,000
80,000
70,000

89253

72591
67131

60,000
50,000
40,000
31465

30,000

27647
19972 19614 19220 19185 19118 19118 18484

20,000

13532

10,000
0

l
r
r
r
il
s
s
d
g
d
e
n
ct
ry
ua Rate
es dres tome t C a r t C a r
e t a i s t o r c h i v Orde o u t i n e a d e e a s o onta
d
r
i
d
D
v
y
i
i
i
r
d
d
k
H
H
rA - Cus C r e d C r e d - I n d r r e n c
r d e c t i o n t o r y A Wor r d e r R r d e r a l e s R n - C n - A
e
t
O
Cu
tom ales n t a c l e s - a l e s
sa
rso e r s o
rS
nsO
les
His
kO
us
Pe
sa
o
S a T r a n c t i o n uctio W o r S a l e e a d e
S
S
P
C
e
S
C
l
sSa
rH
s a Prod i o n - l e s nles
les
de
ale
t
a
S a uctio Tran
r
a
c
S
S
S
u
sO
od
od ion ale
Pr
Pr
t
S
c
u
od
les
Pr
Sa

Tables
rows

Top Tables by Size

Top Tables by Size


25,000

24704

22,500
20,000
17,500

15,000

15008

12,500
10,000

9296
7976

7,500

7312
6456

6432

5888
4664

5,000

2272

2,500

2256

2000

1432

1416

1168

t
r
r
s
s
d
o
g
al
ry
te
er
ail
i v e u t i n g ntac
rde d r e s i t C a r P h o t t o m e s e L o
res yRa
ad
i d u r D e t Histo
ch
d
O
e
v
r
o
o
i
t
d
d
k
s
c
d
H
a
A
rR
uc
rA
- C Wor
re
en
I n d O r d e ction r d e r
-A
Cu a t a b
ory
r d e son
me Curr
- C Prod es s
son
ist
a
O
o
D
O
e
e
s
s
t
s
r
n
s
l
l
H
l
k
r
n
r
a
le
n
le
us
Pe uctio
sSa
Sa d b o
Pe
S a ction
- S - Tra - S a actio - Wo
- C Sale
d
s
s
o
e
s
u
s
n
n
l
le
Pr
od
S a uctio S a l e Tran uctio
Sa
Pr
d
d
o
o
n
Pr
Pr
tio
uc
d
o
Pr

X
Size_in_KB

Tables
Table Name

Table Schema

AWBuildVersion

dbo

DatabaseLog

dbo

ErrorLog

dbo

Department

HumanResources

Employee

HumanResources

EmployeeAddress

HumanResources

EmployeeDepartmentHistory

HumanResources

EmployeePayHistory

HumanResources

JobCandidate

HumanResources

Shift

HumanResources

Address

Person

AddressType

Person

Contact

Person

ContactType

Person

CountryRegion

Person

StateProvince

Person

BillOfMaterials

Production

Culture

Production

Document

Production

Illustration

Production

Location

Production

Product

Production

ProductCategory

Production

ProductCostHistory

Production

Table Name

Table Schema

ProductDescription

Production

ProductDocument

Production

ProductInventory

Production

ProductListPriceHistory

Production

ProductModel

Production

ProductModelIllustration

Production

ProductModelProductDescriptionCulture

Production

ProductPhoto

Production

ProductProductPhoto

Production

ProductReview

Production

ProductSubcategory

Production

ScrapReason

Production

TransactionHistory

Production

TransactionHistoryArchive

Production

UnitMeasure

Production

WorkOrder

Production

WorkOrderRouting

Production

ProductVendor

Purchasing

PurchaseOrderDetail

Purchasing

PurchaseOrderHeader

Purchasing

ShipMethod

Purchasing

Vendor

Purchasing

VendorAddress

Purchasing

VendorContact

Purchasing

ContactCreditCard

Sales

Table Name

Table Schema

CountryRegionCurrency

Sales

CreditCard

Sales

Currency

Sales

CurrencyRate

Sales

Customer

Sales

CustomerAddress

Sales

Individual

Sales

SalesOrderDetail

Sales

SalesOrderHeader

Sales

SalesOrderHeaderSalesReason

Sales

SalesPerson

Sales

SalesPersonQuotaHistory

Sales

SalesReason

Sales

SalesTaxRate

Sales

SalesTerritory

Sales

SalesTerritoryHistory

Sales

ShoppingCartItem

Sales

SpecialOffer

Sales

SpecialOfferProduct

Sales

Store

Sales

StoreContact

Sales

AWBuildVersion
Column Details
Column Name

Data Type

Column
Default

Length
25

Is Nullable

Database Version

nvarchar

ModifiedDate

datetime

SystemInformationID

tinyint

NO

SystemInformationID

tinyint

NO

VersionDate

datetime

NO

Version number of the database in


9.yy.mm.dd.00 format.
Date and time the record was last updated.

NO
(getdate())

Description

NO

Primary key for AWBuildVersion records.


Clustered index created by a primary key
constraint.
Date and time the record was last updated.

Table Indexes
Table Name

Index Name

Column Name

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

AWBuildVersi PK_AWBuildVersion_Sy SystemInformatio CLUSTERED


on
stemInformationID
nID

true

true

false

false

Is
Padded

Is
Hypothetical

false

Dependent Objects
---None---

DatabaseLog
Column Details
Column Name
DatabaseLogID

Data Type
int

Length

Column
Default

Is Nullable
NO

Description
Primary key for DatabaseLog records.

false

Column Name

Data Type

Column
Default

Length

Is Nullable

Description

DatabaseUser

nvarchar

128

NO

The user who implemented the DDL change.

Event

nvarchar

128

NO

Object

nvarchar

128

YES

PostTime

datetime

NO

PostTime

datetime

NO

Schema

nvarchar

128

TSQL

nvarchar

-1

NO

XmlEvent

xml

-1

NO

The type of DDL statement that was executed.


The object that was changed by the DDL
statment.
The date and time the DDL change occurred.
Nonclustered index created by a primary key
constraint.
The schema to which the changed object
belongs.
The exact Transact-SQL statement that was
executed.
The raw XML data generated by database
trigger.

YES

Table Indexes
Table Name

Index Name

Column Name

DatabaseLog PK_DatabaseLog_Datab
DatabaseLogID
aseLogID

Dependent Objects
---None---

Index Type
NONCLUSTE
RED

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key
true

true

false

false

Is
Padded
false

Is
Hypothetical
false

ErrorLog
Column Details
Column Name

Data Type

Length

Column
Default

Is Nullable

Description

ErrorLine

int

YES

The line number at which the error occurred.

ErrorLogID

int

NO

ErrorLogID

int

NO

ErrorMessage

nvarchar

Primary key for ErrorLog records.


Clustered index created by a primary key
constraint.
The message text of the error that occurred.

ErrorNumber

int

ErrorProcedure

nvarchar

ErrorSeverity

int

YES

The error number of the error that occurred.


The name of the stored procedure or trigger
where the error occurred.
The severity of the error that occurred.

ErrorState

int

YES

The state number of the error that occurred.

ErrorTime

datetime

NO

UserName

nvarchar

The date and time at which the error occurred.


The user who executed the batch in which the
error occurred.

4000

NO
NO

126

YES

(getdate())
128

NO

Table Indexes
Table Name
ErrorLog

Index Name

Column Name

PK_ErrorLog_ErrorLogID ErrorLogID

Is
Is
Is Unique
Is
Is
Is
Primary
Unique
Constraint
Disabled
Padded
Hypothetical
Key
CLUSTERED
true
true
false
false
false
false
Index Type

Dependent Objects
Dependent Obj
uspLogError

Dependent Obj Type


SQL_STORED_PROCEDURE

Department
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

DepartmentID

smallint

NO

DepartmentID

smallint

NO

GroupName

nvarchar

ModifiedDate

datetime

Name

nvarchar

Name

nvarchar

Description

NO

Primary key for Department records.


Clustered index created by a primary key
constraint.
Name of the group to which the department
belongs.
Date and time the record was last updated.

50

NO

Name of the department.

50

NO

Unique nonclustered index.

50

NO
(getdate())

Table Indexes
Table Name

Index Name

Column Name

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

Department

PK_Department_Depart DepartmentID
mentID

CLUSTERED

true

true

false

false

false

false

Department

AK_Department_Name

NONCLUSTE
RED

true

false

false

false

false

false

Name

Dependent Objects
Dependent Obj
vEmployeeDepartment

Dependent Obj Type


VIEW

Dependent Obj
vEmployeeDepartmentHistory

Dependent Obj Type


VIEW

Employee
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

Description

BirthDate

datetime

NO

ContactID

int

NO

ContactID

int

NO

Date of birth.
Identifies the employee in the Contact table.
Foreign key to Contact.ContactID.
Unique nonclustered index.

CurrentFlag

bit

NO

0 = Inactive, 1 = Active

EmployeeID

int

NO

EmployeeID

int

NO

Gender

nchar

NO

Primary key for Employee records.


Clustered index created by a primary key
constraint.
M = Male, F = Female

HireDate

datetime

NO

Employee hired on this date.

LoginID

nvarchar

256

NO

LoginID

nvarchar

256

NO

ManagerID

int

YES

ManagerID

int

YES

Network login.
Unique nonclustered index. Used to support
replication samples.
Manager to whom the employee is assigned.
Foreign Key to Employee.M
Nonclustered index.

MaritalStatus

nchar

NO

M = Married, S = Single

ModifiedDate

datetime

NO

NationalIDNumber

nvarchar

15

NO

NationalIDNumber

nvarchar

15

NO

Date and time the record was last updated.


Unique national identification number such as
a social security number.
Unique nonclustered index.

((1))

1
(getdate())

Column Name

Data Type

Column
Default

Length

Is Nullable

rowguid

uniqueidentifier

(newid())

NO

SalariedFlag

bit

((1))

NO

SickLeaveHours

smallint

((0))

NO

Title

nvarchar

VacationHours

smallint

50

ROWGUIDCOL number uniquely identifying


the record. Used to support a merge
replication sample.
Job classification. 0 = Hourly, not exempt from
collective bargaining. 1 = Salaried, exempt
from collective bargaining.
Number of available sick leave hours.
Work title such as Buyer or Sales
Representative.
Number of available vacation hours.

NO
((0))

Description

NO

Table Indexes
Table Name

Index Name

Column Name

Employee

PK_Employee_Employe EmployeeID
eID

Employee

AK_Employee_LoginID

Employee
Employee
Employee

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

CLUSTERED

true

true

false

false

false

false

NONCLUSTE
RED
AK_Employee_NationalI NationalIDNumbe NONCLUSTE
DNumber
r
RED
NONCLUSTE
AK_Employee_rowguid rowguid
RED
IX_Employee_ManagerI ManagerID
NONCLUSTE
D
RED

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

false

false

false

false

false

false

Dependent Objects

LoginID

Dependent Obj

Dependent Obj Type

uspGetEmployeeManagers

SQL_STORED_PROCEDURE

uspGetManagerEmployees

SQL_STORED_PROCEDURE

uspUpdateEmployeeHireInfo

SQL_STORED_PROCEDURE

uspUpdateEmployeeLogin

SQL_STORED_PROCEDURE

uspUpdateEmployeePersonalInfo

SQL_STORED_PROCEDURE

ufnGetContactInformation

SQL_TABLE_VALUED_FUNCTION

vEmployee

VIEW

vEmployeeDepartment

VIEW

vEmployeeDepartmentHistory

VIEW

vSalesPerson

VIEW

vSalesPersonSalesByFiscalYears

VIEW

EmployeeAddress
Column Details
Column Name

Data Type

Length

Column
Default

Is Nullable

AddressID

int

NO

AddressID

int

NO

EmployeeID

int

NO

EmployeeID

int

NO

ModifiedDate

datetime

(getdate())

NO

Description
Primary key. Foreign key to
Address.AddressID.
Unique nonclustered index. Used to support
replication samples.
Primary key. Foreign key to
Employee.EmployeeID.
Clustered index created by a primary key
constraint.
Date and time the record was last updated.

Column Name
rowguid

Data Type

Length

uniqueidentifier

Column
Default
(newid())

Is Nullable

Description
ROWGUIDCOL number uniquely identifying
the record. Used to support a merge
replication sample.

NO

Table Indexes
Table Name
EmployeeAdd
ress
EmployeeAdd
ress
EmployeeAdd
ress

Index Name

Column Name

PK_EmployeeAddress_E EmployeeID
mployeeID_AddressID
PK_EmployeeAddress_E AddressID
mployeeID_AddressID
AK_EmployeeAddress_r rowguid
owguid

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key
true

true

false

false

false

false

CLUSTERED

true

true

false

false

false

false

NONCLUSTE
RED

true

false

false

false

false

false

Dependent Obj

Dependent Obj Type

vEmployee

VIEW

vSalesPerson

VIEW

Column Details

Is
Hypothetical

CLUSTERED

Dependent Objects

EmployeeDepartmentHistory

Is
Padded

Column Name

Data Type

Length

Column
Default

Is Nullable

DepartmentID

smallint

NO

DepartmentID

smallint

NO

EmployeeID

int

NO

EmployeeID

int

NO

EndDate

datetime

YES

ModifiedDate

datetime

ShiftID

tinyint

NO

ShiftID

tinyint

NO

StartDate

datetime

NO

(getdate())

Description
Department in which the employee worked
including currently. Foreign key to
Department.DepartmentID.
Nonclustered index.
Employee identification number. Foreign key
to Employee.EmployeeID.
Clustered index created by a primary key
constraint.
Date the employee left the department. NULL
= Current department.
Date and time the record was last updated.
Identifies which 8-hour shift the employee
works. Foreign key to Shift.Shift.ID.
Nonclustered index.
Date the employee started work in the
department.

NO

Table Indexes
Table Name
EmployeeDep
artmentHistor
y
EmployeeDep
artmentHistor
y
EmployeeDep
artmentHistor
y

Index Name

Column Name

PK_EmployeeDepartmen
tHistory_EmployeeID_St EmployeeID
artDate_DepartmentID
PK_EmployeeDepartmen
tHistory_EmployeeID_St DepartmentID
artDate_DepartmentID
PK_EmployeeDepartmen
tHistory_EmployeeID_St ShiftID
artDate_DepartmentID

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

CLUSTERED

true

true

false

false

false

false

CLUSTERED

true

true

false

false

false

false

CLUSTERED

true

true

false

false

false

false

Table Name
EmployeeDep
artmentHistor
y
EmployeeDep
artmentHistor
y
EmployeeDep
artmentHistor
y

Index Name

Column Name

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

PK_EmployeeDepartmen
tHistory_EmployeeID_St StartDate
artDate_DepartmentID

CLUSTERED

true

true

false

false

false

false

IX_EmployeeDepartment DepartmentID
History_DepartmentID

NONCLUSTE
RED

false

false

false

false

false

false

IX_EmployeeDepartment ShiftID
History_ShiftID

NONCLUSTE
RED

false

false

false

false

false

false

Dependent Objects
Dependent Obj

Dependent Obj Type

vEmployeeDepartment

VIEW

vEmployeeDepartmentHistory

VIEW

EmployeePayHistory
Column Details
Column Name

Data Type

Length

Column
Default

Is Nullable

EmployeeID

int

NO

EmployeeID

int

NO

ModifiedDate

datetime

PayFrequency

tinyint

(getdate())

NO
NO

Description
Employee identification number. Foreign key
to Employee.EmployeeID.
Clustered index created by a primary key
constraint.
Date and time the record was last updated.
1 = Salary received monthly, 2 = Salary
received biweekly

Column Name

Data Type

Length

Column
Default

Is Nullable

Description

Rate

money

NO

Salary hourly rate.

RateChangeDate

datetime

NO

Date the change in pay is effective

Table Indexes
Table Name

Index Name

Column Name

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

EmployeePay PK_EmployeePayHistory
_EmployeeID_RateChan EmployeeID
CLUSTERED
History
geDate
EmployeePay PK_EmployeePayHistory
_EmployeeID_RateChan RateChangeDate CLUSTERED
History
geDate

Is
Padded

Is
Hypothetical

true

true

false

false

false

false

true

true

false

false

false

false

Dependent Objects
Dependent Obj
uspUpdateEmployeeHireInfo

Dependent Obj Type


SQL_STORED_PROCEDURE

JobCandidate
Column Details
Column Name
EmployeeID

Data Type
int

Length

Column
Default

Is Nullable
YES

Description
Employee identification number if applicant
was hired. Foreign key to
Employee.EmployeeID.

Column Name

Data Type

Column
Default

Length

Is Nullable

Description

EmployeeID

int

YES

Nonclustered index.

JobCandidateID

int

NO

JobCandidateID

int

NO

ModifiedDate

datetime

NO

Primary key for JobCandidate records.


Clustered index created by a primary key
constraint.
Date and time the record was last updated.

Resume

xml

YES

Rsum in XML format.

(getdate())
-1

Table Indexes
Table Name

Index Name

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

Column Name

Index Type

JobCandidate PK_JobCandidate_JobC
JobCandidateID
andidateID
JobCandidate IX_JobCandidate_Emplo
EmployeeID
yeeID

CLUSTERED

true

true

false

false

false

false

NONCLUSTE
RED

false

false

false

false

false

false

Dependent Objects
Dependent Obj

Dependent Obj Type

vJobCandidate

VIEW

vJobCandidateEducation

VIEW

vJobCandidateEmployment

VIEW

Shift
Column Details
Column Name

Data Type

EndTime

datetime

ModifiedDate

datetime

Name

nvarchar

Name

nvarchar

ShiftID

Column
Default

Length

Is Nullable

Description

NO

Shift end time.

NO

Date and time the record was last updated.

50

NO

Shift description.

50

NO

Unique nonclustered index.

tinyint

NO

ShiftID

tinyint

NO

StartTime

datetime

NO

Primary key for Shift records.


Clustered index created by a primary key
constraint.
Shift start time.

StartTime

datetime

NO

Unique nonclustered index.

(getdate())

Table Indexes
Table Name

Index Name

Column Name

Shift

PK_Shift_ShiftID

ShiftID

Shift

AK_Shift_Name

Name

Shift

AK_Shift_StartTime_End StartTime
Time
AK_Shift_StartTime_End EndTime
Time

Shift

Dependent Objects

Is
Is
Is Unique
Is
Is
Is
Primary
Unique
Constraint
Disabled
Padded
Hypothetical
Key
CLUSTERED
true
true
false
false
false
false
NONCLUSTE
true
false
false
false
false
false
RED
NONCLUSTE
true
false
false
false
false
false
RED
NONCLUSTE
true
false
false
false
false
false
RED
Index Type

Dependent Obj
vEmployeeDepartmentHistory

Dependent Obj Type


VIEW

Address
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

Description

AddressID

int

NO

AddressID

int

NO

AddressLine1

nvarchar

60

NO

AddressLine1

nvarchar

60

NO

AddressLine2

nvarchar

60

YES

Primary key for Address records.


Clustered index created by a primary key
constraint.
First street address line.
Unique nonclustered index. Used to support
replication samples.
Second street address line.

AddressLine2

nvarchar

60

YES

Nonclustered index.

City

nvarchar

30

NO

Name of the city.

City

nvarchar

30

NO

Nonclustered index.

ModifiedDate

datetime

NO

Date and time the record was last updated.

PostalCode

nvarchar

NO

rowguid

uniqueidentifier

StateProvinceID

int

Postal code for the street address.


ROWGUIDCOL number uniquely identifying
the record. Used to support a merge
replication sample.
Unique identification number for the state or
province. Foreign key to StateProvince table.

Table Indexes

(getdate())
15
(newid())

NO
NO

Table Name

Index Name

rowguid

Is
Is
Is Unique
Is
Is
Is
Primary
Unique
Constraint
Disabled
Padded
Hypothetical
Key
CLUSTERED
true
true
false
false
false
false
NONCLUSTE
true
false
false
false
false
false
RED

AddressLine1

NONCLUSTE
RED

true

false

false

false

false

false

AddressLine2

NONCLUSTE
RED

true

false

false

false

false

false

City

NONCLUSTE
RED

true

false

false

false

false

false

StateProvinceID

NONCLUSTE
RED

true

false

false

false

false

false

PostalCode

NONCLUSTE
RED

true

false

false

false

false

false

StateProvinceID

NONCLUSTE
RED

false

false

false

false

false

false

Column Name

Address

PK_Address_AddressID AddressID

Address

AK_Address_rowguid

Address

Address

Address

Address

Address
Address

IX_Address_AddressLine
1_AddressLine2_City_St
ateProvinceID_PostalCo
de
IX_Address_AddressLine
1_AddressLine2_City_St
ateProvinceID_PostalCo
de
IX_Address_AddressLine
1_AddressLine2_City_St
ateProvinceID_PostalCo
de
IX_Address_AddressLine
1_AddressLine2_City_St
ateProvinceID_PostalCo
de
IX_Address_AddressLine
1_AddressLine2_City_St
ateProvinceID_PostalCo
de
IX_Address_StateProvin
ceID

Index Type

Dependent Objects
Dependent Obj

Dependent Obj Type

vEmployee

VIEW

vIndividualCustomer

VIEW

Dependent Obj

Dependent Obj Type

vSalesPerson

VIEW

vStoreWithDemographics

VIEW

vVendor

VIEW

AddressType
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

AddressTypeID

int

NO

AddressTypeID

int

NO

ModifiedDate

datetime

Name

nvarchar

50

NO

Name

nvarchar

50

NO

rowguid

uniqueidentifier

(newid())

NO

rowguid

uniqueidentifier

(newid())

NO

(getdate())

Description
Primary key for AddressType records.
Clustered index created by a primary key
constraint.
Date and time the record was last updated.
Address type description. For example, Billing,
Home, or Shipping.
Unique nonclustered index. Used to support
replication samples.
ROWGUIDCOL number uniquely identifying
the record. Used to support a merge
replication sample.
Unique nonclustered index.

NO

Table Indexes
Table Name

Index Name

Column Name

AddressType PK_AddressType_Addre
AddressTypeID
ssTypeID

Index Type
CLUSTERED

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key
true

true

false

false

Is
Padded
false

Is
Hypothetical
false

Table Name

Index Name

Column Name

AddressType AK_AddressType_rowgui
rowguid
d
AddressType AK_AddressType_Name Name

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

NONCLUSTE
RED
NONCLUSTE
RED

Is
Padded

Is
Hypothetical

true

false

false

false

false

false

true

false

false

false

false

false

Dependent Objects
Dependent Obj

Dependent Obj Type

vIndividualCustomer

VIEW

vStoreWithDemographics

VIEW

Contact
Column Details
Column Name

Data Type

Column
Default

Length
-1

Is Nullable

AdditionalContactInfo

xml

YES

ContactID

int

NO

ContactID

int

NO

EmailAddress

nvarchar

EmailPromotion

int

50

YES

((0))

NO

Description
Additional contact information about the
person stored in xml format.
Primary key for Contact records.
Clustered index created by a primary key
constraint.
E-mail address for the person.
0 = Contact does not wish to receive e-mail
promotions, 1 = Contact does wish to receive
e-mail promotions from AdventureWorks, 2 =
Contact does wish to receive e-mail
promotions from AdventureWorks and
selected partners.

Column Name

Data Type

Column
Default

Length

Is Nullable

Description

FirstName

nvarchar

50

NO

First name of the person.

LastName

nvarchar

50

NO

Last name of the person.

MiddleName

nvarchar

50

YES

Middle name or middle initial of the person.

ModifiedDate

datetime

(getdate())

NO

NameStyle

bit

((0))

NO

NameStyle

bit

((0))

NO

PasswordHash

varchar

128

NO

PasswordSalt

varchar

10

NO

Phone

nvarchar

25

YES

rowguid

uniqueidentifier

Suffix

nvarchar

10

YES

Date and time the record was last updated.


0 = The data in FirstName and LastName are
stored in western style (first name, last name)
order. 1 = Eastern style (last name, first
name) order.
Unique nonclustered index. Used to support
replication samples.
Password for the e-mail account.
Random value concatenated with the
password string before the password is
hashed.
Phone number associated with the person.
ROWGUIDCOL number uniquely identifying
the record. Used to support a merge
replication sample.
Surname suffix. For example, Sr. or Jr.

Title

nvarchar

YES

A courtesy title. For example, Mr. or Ms.

Title

nvarchar

YES

Nonclustered index.

(newid())

NO

Table Indexes
Table Name
Contact

Index Name
PK_Contact_ContactID

Column Name
ContactID

Is
Is
Is Unique
Is
Is
Is
Primary
Unique
Constraint
Disabled
Padded
Hypothetical
Key
CLUSTERED
true
true
false
false
false
false
Index Type

Table Name

Index Name

Column Name

NONCLUSTE
RED
NONCLUSTE
RED

Contact

AK_Contact_rowguid

Contact

IX_Contact_EmailAddres EmailAddress
s
PXML_Contact_AddCont AdditionalContact XML
act
Info

Contact

rowguid

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

true

false

false

false

false

false

false

false

false

false

false

false

false

false

false

false

false

false

Dependent Objects
Dependent Obj

Dependent Obj Type

uspGetEmployeeManagers

SQL_STORED_PROCEDURE

uspGetManagerEmployees

SQL_STORED_PROCEDURE

ufnGetContactInformation

SQL_TABLE_VALUED_FUNCTION

vAdditionalContactInfo

VIEW

vEmployee

VIEW

vEmployeeDepartment

VIEW

vEmployeeDepartmentHistory

VIEW

vIndividualCustomer

VIEW

vSalesPerson

VIEW

vSalesPersonSalesByFiscalYears

VIEW

vStoreWithDemographics

VIEW

vVendor

VIEW

ContactType
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

ContactTypeID

int

NO

ContactTypeID

int

NO

ModifiedDate

datetime

Name

nvarchar

Name

nvarchar

Description

NO

Primary key for ContactType records.


Clustered index created by a primary key
constraint.
Date and time the record was last updated.

50

NO

Contact type description.

50

NO

Unique nonclustered index.

(getdate())

Table Indexes
Table Name

Index Name

Column Name

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

ContactType

PK_ContactType_Contac ContactTypeID
tTypeID

CLUSTERED

true

true

false

false

false

false

ContactType

AK_ContactType_Name Name

NONCLUSTE
RED

true

false

false

false

false

false

Dependent Objects
Dependent Obj

Dependent Obj Type

ufnGetContactInformation

SQL_TABLE_VALUED_FUNCTION

vStoreWithDemographics

VIEW

vVendor

VIEW

CountryRegion
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

CountryRegionCode

nvarchar

NO

CountryRegionCode

nvarchar

NO

ModifiedDate

datetime

Name

nvarchar

Name

nvarchar

Description

NO

ISO standard code for countries and regions.


Clustered index created by a primary key
constraint.
Date and time the record was last updated.

50

NO

Country or region name.

50

NO

Unique nonclustered index.

(getdate())

Table Indexes
Table Name
CountryRegio
n
CountryRegio
n

Index Name

Column Name

Index Type

PK_CountryRegion_Cou CountryRegionCo CLUSTERED


ntryRegionCode
de
AK_CountryRegion_Nam Name
NONCLUSTE
e
RED

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key
true

false

false

false

false

true

false

false

false

false

false

Dependent Obj Type

vEmployee

VIEW

vIndividualCustomer

VIEW

vSalesPerson

VIEW

vStateProvinceCountryRegion

VIEW

vStoreWithDemographics

VIEW

Is
Hypothetical

true

Dependent Objects
Dependent Obj

Is
Padded

Dependent Obj
vVendor

Dependent Obj Type


VIEW

StateProvince
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

Description
ISO standard country or region code. Foreign
key to CountryRegion.CountryRegionCode.
Unique nonclustered index.
0 = StateProvinceCode exists. 1 =
StateProvinceCode unavailable, using
CountryRegionCode.
Unique nonclustered index. Used to support
replication samples.
Date and time the record was last updated.

CountryRegionCode

nvarchar

NO

CountryRegionCode

nvarchar

NO

IsOnlyStateProvinceFlag

bit

((1))

NO

IsOnlyStateProvinceFlag

bit

((1))

NO

ModifiedDate

datetime

(getdate())

NO

Name

nvarchar

rowguid

uniqueidentifier

StateProvinceCode

nchar

NO

State or province description.


ROWGUIDCOL number uniquely identifying
the record. Used to support a merge
replication sample.
ISO standard state or province code.

StateProvinceCode

nchar

NO

Unique nonclustered index.

StateProvinceID

int

NO

StateProvinceID

int

NO

TerritoryID

int

NO

Primary key for StateProvince records.


Clustered index created by a primary key
constraint.
ID of the territory in which the state or
province is located. Foreign key to
SalesTerritory.SalesTerritoryID.

50

NO
(newid())

NO

Table Indexes
Table Name

Index Name

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

Column Name

Index Type

StateProvince PK_StateProvince_State
StateProvinceID
ProvinceID
StateProvince AK_StateProvince_Nam
Name
e
AK_StateProvince_State
StateProvince ProvinceCode_CountryR StateProvinceCo
de
egionCode

CLUSTERED

true

true

false

false

false

false

NONCLUSTE
RED

true

false

false

false

false

false

NONCLUSTE
RED

true

false

false

false

false

false

AK_StateProvince_State
StateProvince ProvinceCode_CountryR CountryRegionCo
de
egionCode
StateProvince AK_StateProvince_rowg
rowguid
uid

NONCLUSTE
RED

true

false

false

false

false

false

NONCLUSTE
RED

true

false

false

false

false

false

Dependent Objects
Dependent Obj

Dependent Obj Type

vEmployee

VIEW

vIndividualCustomer

VIEW

vSalesPerson

VIEW

vStateProvinceCountryRegion

VIEW

vStoreWithDemographics

VIEW

vVendor

VIEW

BillOfMaterials
Column Details

Column Name

Data Type

Column
Default

Length

Is Nullable

Description

BillOfMaterialsID

int

NO

Primary key for BillOfMaterials records.

BillOfMaterialsID

int

NO

BOMLevel

smallint

NO

ComponentID

int

NO

ComponentID

int

NO

EndDate

datetime

YES

ModifiedDate

datetime

(getdate())

NO

PerAssemblyQty

decimal

((1.00))

NO

ProductAssemblyID

int

YES

ProductAssemblyID

int

YES

StartDate

datetime

UnitMeasureCode

nchar

Clustered index.
Indicates the depth the component is from its
parent (AssemblyID).
Component identification number. Foreign key
to Product.ProductID.
Nonclustered index.
Date the component stopped being used in
the assembly item.
Date and time the record was last updated.
Quantity of the component needed to create
the assembly.
Parent product identification number. Foreign
key to Product.ProductID.
Nonclustered index created by a primary key
constraint.
Date the component started being used in the
assembly item.
Standard code identifying the unit of measure
for the quantity.

(getdate())
3

NO
NO

Table Indexes
Table Name

Index Name

Column Name

Index Type

BillOfMaterial AK_BillOfMaterials_Prod
uctAssemblyID_Compon ProductAssembly
CLUSTERED
s
ID
entID_StartDate
BillOfMaterial AK_BillOfMaterials_Prod
uctAssemblyID_Compon ComponentID
CLUSTERED
s
entID_StartDate

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

true

false

false

false

false

false

true

false

false

false

false

false

Table Name

Index Name

Column Name

BillOfMaterial AK_BillOfMaterials_Prod
uctAssemblyID_Compon StartDate
s
entID_StartDate
BillOfMaterial PK_BillOfMaterials_BillOf BillOfMaterialsID
s
MaterialsID
BillOfMaterial IX_BillOfMaterials_UnitM UnitMeasureCod
s
easureCode
e

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

CLUSTERED

true

false

false

false

false

false

NONCLUSTE
RED
NONCLUSTE
RED

true

true

false

false

false

false

false

false

false

false

false

false

Dependent Objects
Dependent Obj

Dependent Obj Type

uspGetBillOfMaterials

SQL_STORED_PROCEDURE

uspGetWhereUsedProductID

SQL_STORED_PROCEDURE

Culture
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

CultureID

nchar

NO

CultureID

nchar

NO

ModifiedDate

datetime

Name

nvarchar

Name

nvarchar

Description

NO

Primary key for Culture records.


Clustered index created by a primary key
constraint.
Date and time the record was last updated.

50

NO

Culture description.

50

NO

Unique nonclustered index.

(getdate())

Table Indexes
Table Name

Index Name

Column Name

Culture

PK_Culture_CultureID

CultureID

Culture

AK_Culture_Name

Name

Is
Is
Is Unique
Is
Is
Is
Primary
Unique
Constraint
Disabled
Padded
Hypothetical
Key
CLUSTERED
true
true
false
false
false
false
NONCLUSTE
true
false
false
false
false
false
RED
Index Type

Dependent Objects
---None---

Document
Column Details
Column Name

Data Type

ChangeNumber

int

Document

varbinary

DocumentID

Column
Default
((0))

Length

Is Nullable

Description

NO

Engineering change approval number.

YES

Complete document.

int

NO

DocumentID

int

NO

DocumentSummary

nvarchar

-1

YES

FileExtension

nvarchar

NO

FileName

nvarchar

400

NO

Primary key for Document records.


Clustered index created by a primary key
constraint.
Document abstract.
File extension indicating the document type.
For example, .doc or .txt.
Directory path and file name of the document

-1

Column Name

Data Type

Column
Default
(getdate())

Length

ModifiedDate

datetime

Revision

nchar

Status

tinyint

Title

nvarchar

50

Title

nvarchar

50

Is Nullable

Description

NO

Date and time the record was last updated.

NO

NO

Revision number of the document.


1 = Pending approval, 2 = Approved, 3 =
Obsolete
Title of the document.

NO

Unique nonclustered index.

NO

Table Indexes
Table Name
Document
Document
Document

Index Name

PK_Document_Documen DocumentID
tID
AK_Document_FileName FileName
_Revision
AK_Document_FileName Revision
_Revision

Dependent Objects
---None---

Illustration
Column Details

Column Name

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

CLUSTERED

true

true

false

false

false

false

NONCLUSTE
RED
NONCLUSTE
RED

true

false

false

false

false

false

true

false

false

false

false

false

Column Name

Data Type

Column
Default

Length
-1

Is Nullable

Diagram

xml

IllustrationID

int

NO

IllustrationID

int

NO

ModifiedDate

datetime

Illustrations used in manufacturing


instructions. Stored as XML.
Primary key for Illustration records.
Clustered index created by a primary key
constraint.
Date and time the record was last updated.

YES

(getdate())

Description

NO

Table Indexes
Table Name
Illustration

Index Name

Column Name

PK_Illustration_Illustratio IllustrationID
nID

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

CLUSTERED

true

true

false

false

Is
Padded
false

Is
Hypothetical
false

Dependent Objects
---None---

Location
Column Details
Column Name

Data Type

Length

Column
Default

Is Nullable

Availability

decimal

((0.00))

NO

CostRate

smallmoney

((0.00))

NO

Description
Work capacity (in hours) of the manufacturing
location.
Standard hourly cost of the manufacturing
location.

Column Name

Data Type

Column
Default

Length

Is Nullable

LocationID

smallint

NO

LocationID

smallint

NO

ModifiedDate

datetime

Name

nvarchar

Name

nvarchar

Description

NO

Primary key for Location records.


Clustered index created by a primary key
constraint.
Date and time the record was last updated.

50

NO

Location description.

50

NO

Unique nonclustered index.

(getdate())

Table Indexes
Table Name

Index Name

Column Name

Location

PK_Location_LocationID LocationID

Location

AK_Location_Name

Name

Is
Is
Is Unique
Is
Is
Is
Primary
Unique
Constraint
Disabled
Padded
Hypothetical
Key
CLUSTERED
true
true
false
false
false
false
NONCLUSTE
true
false
false
false
false
false
RED
Index Type

Dependent Objects
---None---

Product
Column Details
Column Name
Class

Data Type
nchar

Column
Default

Length
2

Is Nullable
YES

Description
H = High, M = Medium, L = Low

Column Name

Data Type

Column
Default

Length
15

Is Nullable
YES

Description

Color

nvarchar

DaysToManufacture

int

NO

DiscontinuedDate

datetime

YES

FinishedGoodsFlag

bit

ListPrice

money

MakeFlag

bit

((1))

NO

MakeFlag

bit

((1))

NO

ModifiedDate

datetime

(getdate())

NO

Product color.
Number of days required to manufacture the
product.
Date the product was discontinued.
0 = Product is not a salable item. 1 = Product
is salable.
Selling price.
0 = Product is purchased, 1 = Product is
manufactured in-house.
Unique nonclustered index. Used to support
replication samples.
Date and time the record was last updated.

Name

nvarchar

50

NO

Name of the product.

Name

nvarchar

50

NO

Unique nonclustered index.

ProductID

int

NO

ProductID

int

NO

ProductLine

nchar

ProductModelID

int

ProductNumber

nvarchar

25

NO

Primary key for Product records.


Clustered index created by a primary key
constraint.
R = Road, M = Mountain, T = Touring, S =
Standard
Product is a member of this product model.
Foreign key to ProductModel.ProductModelID.
Unique product identification number.

ProductNumber

nvarchar

25

NO

ProductSubcategoryID

int

YES

ReorderPoint

smallint

NO

rowguid

uniqueidentifier

((1))

NO
NO

YES
YES

(newid())

NO

Unique nonclustered index.


Product is a member of this product
subcategory. Foreign key to
ProductSubCategory.ProductSubCategoryID.
Inventory level that triggers a purchase order
or work order.
ROWGUIDCOL number uniquely identifying
the record. Used to support a merge
replication sample.

Column Name

Data Type

Column
Default

Length

Is Nullable

Description

SafetyStockLevel

smallint

NO

SellEndDate

datetime

YES

SellStartDate

datetime

NO

Minimum inventory quantity.


Date the product was no longer available for
sale.
Date the product was available for sale.

Size

nvarchar

YES

Product size.

SizeUnitMeasureCode

nchar

YES

Unit of measure for Size column.

StandardCost

money

NO

Standard cost of the product.

Style

nchar

YES

W = Womens, M = Mens, U = Universal

Weight

decimal

YES

Product weight.

WeightUnitMeasureCode

nchar

YES

Unit of measure for Weight column.

2
3

Table Indexes
Table Name
Product

Index Name

Column Name
ProductID

Product

PK_Product_ProductID
AK_Product_ProductNu
mber

Product

AK_Product_Name

Name

Product

AK_Product_rowguid

rowguid

Dependent Objects

ProductNumber

Is
Is
Is Unique
Is
Is
Is
Primary
Unique
Constraint
Disabled
Padded
Hypothetical
Key
CLUSTERED
true
true
false
false
false
false
NONCLUSTE
true
false
false
false
false
false
RED
NONCLUSTE
true
false
false
false
false
false
RED
NONCLUSTE
true
false
false
false
false
false
RED
Index Type

Dependent Obj

Dependent Obj Type

ufnGetProductDealerPrice

SQL_SCALAR_FUNCTION

ufnGetProductListPrice

SQL_SCALAR_FUNCTION

ufnGetProductStandardCost

SQL_SCALAR_FUNCTION

uspGetBillOfMaterials

SQL_STORED_PROCEDURE

uspGetWhereUsedProductID

SQL_STORED_PROCEDURE

vProductAndDescription

VIEW

ProductCategory
Column Details
Column Name

Data Type

ModifiedDate

datetime

Name

nvarchar

Name

nvarchar

ProductCategoryID

Column
Default
(getdate())

Length

Is Nullable

Description

NO

Date and time the record was last updated.

50

NO

Category description.

50

NO

Unique nonclustered index.

int

NO

ProductCategoryID

int

NO

rowguid

uniqueidentifier

(newid())

NO

rowguid

uniqueidentifier

(newid())

NO

Primary key for ProductCategory records.


Clustered index created by a primary key
constraint.
ROWGUIDCOL number uniquely identifying
the record. Used to support a merge
replication sample.
Unique nonclustered index. Used to support
replication samples.

Table Indexes

Table Name

Index Name

Column Name

ProductCateg
ory
ProductCateg
ory
ProductCateg
ory

PK_ProductCategory_Pr
oductCategoryID
AK_ProductCategory_Na
me
AK_ProductCategory_ro
wguid

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

ProductCategoryI CLUSTERED
D
NONCLUSTE
Name
RED
NONCLUSTE
rowguid
RED

Is
Padded

Is
Hypothetical

true

true

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

Dependent Objects
---None---

ProductCostHistory
Column Details
Column Name

Data Type

Length

Column
Default

Is Nullable

EndDate

datetime

ModifiedDate

datetime

ProductID

int

NO

ProductID

int

NO

StandardCost

money

StartDate

datetime

(getdate())

Description

YES

Product cost end date.

NO

NO

Date and time the record was last updated.


Product identification number. Foreign key to
Product.ProductID
Clustered index created by a primary key
constraint.
Standard cost of the product.

NO

Product cost start date.

Table Indexes
Table Name
ProductCostH
istory
ProductCostH
istory

Index Name

Column Name

PK_ProductCostHistory_ ProductID
ProductID_StartDate
PK_ProductCostHistory_ StartDate
ProductID_StartDate

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

CLUSTERED

true

true

false

false

false

false

CLUSTERED

true

true

false

false

false

false

Dependent Objects
Dependent Obj
ufnGetProductStandardCost

Dependent Obj Type


SQL_SCALAR_FUNCTION

ProductDescription
Column Details
Column Name

Data Type

Length

Column
Default

Is Nullable

Description

nvarchar

400

NO

Description

nvarchar

400

NO

ModifiedDate

datetime

ProductDescriptionID

int

NO

ProductDescriptionID

int

NO

rowguid

uniqueidentifier

(getdate())

(newid())

NO

NO

Description
Description of the product.
Unique nonclustered index. Used to support
replication samples.
Date and time the record was last updated.
Primary key for ProductDescription records.
Clustered index created by a primary key
constraint.
ROWGUIDCOL number uniquely identifying
the record. Used to support a merge
replication sample.

Table Indexes
Table Name
ProductDescri
ption
ProductDescri
ption

Index Name

Column Name

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

PK_ProductDescription_ ProductDescriptio CLUSTERED


ProductDescriptionID
nID
AK_ProductDescription_r rowguid
NONCLUSTE
owguid
RED

Is
Padded

Is
Hypothetical

true

true

false

false

false

false

true

false

false

false

false

false

Dependent Objects
Dependent Obj
vProductAndDescription

Dependent Obj Type


VIEW

ProductDocument
Column Details
Column Name

Data Type

Length

Column
Default

Is Nullable

DocumentID

int

ModifiedDate

datetime

ProductID

int

NO

ProductID

int

NO

Table Indexes

NO
(getdate())

NO

Description
Document identification number. Foreign key
to Document.DocumentID.
Date and time the record was last updated.
Product identification number. Foreign key to
Product.ProductID.
Clustered index created by a primary key
constraint.

Table Name
ProductDocu
ment
ProductDocu
ment

Index Name

Column Name

PK_ProductDocument_P ProductID
roductID_DocumentID
PK_ProductDocument_P DocumentID
roductID_DocumentID

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

CLUSTERED

true

true

false

false

false

false

CLUSTERED

true

true

false

false

false

false

Dependent Objects
---None---

ProductInventory
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

Bin

tinyint

NO

LocationID

smallint

NO

ModifiedDate

datetime

ProductID

int

NO

ProductID

int

NO

Quantity

smallint

((0))

NO

rowguid

uniqueidentifier

(newid())

NO

Shelf

nvarchar

(getdate())

10

NO

NO

Description
Storage container on a shelf in an inventory
location.
Inventory location identification number.
Foreign key to Location.LocationID.
Date and time the record was last updated.
Product identification number. Foreign key to
Product.ProductID.
Clustered index created by a primary key
constraint.
Quantity of products in the inventory location.
ROWGUIDCOL number uniquely identifying
the record. Used to support a merge
replication sample.
Storage compartment within an inventory
location.

Table Indexes
Table Name
ProductInvent
ory
ProductInvent
ory

Index Name

Column Name

PK_ProductInventory_Pr ProductID
oductID_LocationID
PK_ProductInventory_Pr LocationID
oductID_LocationID

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

CLUSTERED

true

true

false

false

false

false

CLUSTERED

true

true

false

false

false

false

Dependent Objects
Dependent Obj
ufnGetStock

Dependent Obj Type


SQL_SCALAR_FUNCTION

ProductListPriceHistory
Column Details
Column Name

Data Type

Length

Column
Default

Is Nullable

Description

EndDate

datetime

YES

List price end date

ListPrice

money

NO

Product list price.

ModifiedDate

datetime

NO

ProductID

int

NO

ProductID

int

NO

StartDate

datetime

NO

Date and time the record was last updated.


Product identification number. Foreign key to
Product.ProductID
Clustered index created by a primary key
constraint.
List price start date.

(getdate())

Table Indexes
Table Name
ProductListPri
ceHistory
ProductListPri
ceHistory

Index Name

Column Name

PK_ProductListPriceHist ProductID
ory_ProductID_StartDate
PK_ProductListPriceHist StartDate
ory_ProductID_StartDate

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

CLUSTERED

true

true

false

false

false

false

CLUSTERED

true

true

false

false

false

false

Dependent Objects
Dependent Obj

Dependent Obj Type

ufnGetProductDealerPrice

SQL_SCALAR_FUNCTION

ufnGetProductListPrice

SQL_SCALAR_FUNCTION

ProductModel
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

Description

CatalogDescription

xml

-1

YES

CatalogDescription

xml

-1

YES

Instructions

xml

-1

YES

Detailed product catalog information in xml


format.
Unique nonclustered index. Used to support
replication samples.
Manufacturing instructions in xml format.

ModifiedDate

datetime

NO

Date and time the record was last updated.

Name

nvarchar

NO

Product model description.

(getdate())
50

Column Name

Data Type

Name

nvarchar

ProductModelID

Column
Default

Length
50

Is Nullable

Description

NO

Unique nonclustered index.

int

NO

ProductModelID

int

NO

rowguid

uniqueidentifier

Primary key for ProductModel records.


Clustered index created by a primary key
constraint.
ROWGUIDCOL number uniquely identifying
the record. Used to support a merge
replication sample.

(newid())

NO

Table Indexes
Table Name

Index Name

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

Column Name

Index Type

ProductModel PK_ProductModel_Produ
ProductModelID
ctModelID

CLUSTERED

true

true

false

false

false

false

ProductModel AK_ProductModel_Name Name

NONCLUSTE
RED
NONCLUSTE
RED

true

false

false

false

false

false

true

false

false

false

false

false

false

false

false

false

false

false

false

false

false

false

false

false

ProductModel AK_ProductModel_rowg
rowguid
uid
CatalogDescriptio XML
ProductModel PXML_ProductModel_Ca
talogDescription
n
ProductModel PXML_ProductModel_In
Instructions
XML
structions

Dependent Objects
Dependent Obj

Dependent Obj Type

vProductAndDescription

VIEW

vProductModelCatalogDescription

VIEW

Dependent Obj

Dependent Obj Type

vProductModelInstructions

VIEW

ProductModelIllustration
Column Details
Column Name

Data Type

Length

Column
Default

Is Nullable

IllustrationID

int

ModifiedDate

datetime

ProductModelID

int

NO

ProductModelID

int

NO

Primary key. Foreign key to


Illustration.IllustrationID.
Date and time the record was last updated.
Primary key. Foreign key to
ProductModel.ProductModelID.
Clustered index created by a primary key
constraint.

NO
(getdate())

Description

NO

Table Indexes
Table Name

Index Name

Column Name

ProductModel PK_ProductModelIllustrat
ion_ProductModelID_Illu ProductModelID
Illustration
strationID
ProductModel PK_ProductModelIllustrat
ion_ProductModelID_Illu IllustrationID
Illustration
strationID

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

CLUSTERED

true

true

false

false

false

false

CLUSTERED

true

true

false

false

false

false

Dependent Objects
---None---

ProductModelProductDescriptionCulture
Column Details
Column Name

Data Type

Column
Default

Length
6

Is Nullable

CultureID

nchar

ModifiedDate

datetime

ProductDescriptionID

int

NO

ProductModelID

int

NO

ProductModelID

int

NO

Culture identification number. Foreign key to


Culture.CultureID.
Date and time the record was last updated.
Primary key. Foreign key to
ProductDescription.ProductDescriptionID.
Primary key. Foreign key to
ProductModel.ProductModelID.
Clustered index created by a primary key
constraint.

NO
(getdate())

Description

NO

Table Indexes
Table Name

Index Name

Column Name

Index Type

PK_ProductModelProduc
tDescriptionCulture_Prod ProductModelID CLUSTERED
uctModelID_ProductDes
criptionID_CultureID
ProductModel PK_ProductModelProduc
ProductDescriptio CLUSTERED
ProductDescri tDescriptionCulture_Prod
uctModelID_ProductDes
nID
ptionCulture criptionID_CultureID
ProductModel
ProductDescri
ptionCulture

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

true

true

false

false

false

false

true

true

false

false

false

false

Table Name
ProductModel
ProductDescri
ptionCulture

Index Name

Column Name

PK_ProductModelProduc
tDescriptionCulture_Prod CultureID
uctModelID_ProductDes
criptionID_CultureID

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

CLUSTERED

true

true

false

Is
Padded

false

Is
Hypothetical

false

false

Dependent Objects
Dependent Obj
vProductAndDescription

Dependent Obj Type


VIEW

ProductPhoto
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

Description

LargePhoto

varbinary

-1

YES

Large image of the product.

LargePhotoFileName

nvarchar

50

YES

Large image file name.

ModifiedDate

datetime

NO

Date and time the record was last updated.

ProductPhotoID

int

NO

ProductPhotoID

int

NO

ThumbNailPhoto

varbinary

-1

YES

Primary key for ProductPhoto records.


Clustered index created by a primary key
constraint.
Small image of the product.

ThumbnailPhotoFileName

nvarchar

50

YES

Small image file name.

(getdate())

Table Indexes
Table Name

Index Name

Column Name

Index Type

ProductPhoto PK_ProductPhoto_Produ
ProductPhotoID
ctPhotoID

CLUSTERED

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key
true

true

false

false

Is
Padded
false

Is
Hypothetical
false

Dependent Objects
---None---

ProductProductPhoto
Column Details

ModifiedDate

datetime

Column
Default
(getdate())

Primary

bit

((0))

ProductID

int

NO

ProductPhotoID

int

NO

ProductPhotoID

int

NO

Column Name

Table Indexes

Data Type

Length

Is Nullable
NO
NO

Description
Date and time the record was last updated.
0 = Photo is not the principal image. 1 = Photo
is the principal image.
Product identification number. Foreign key to
Product.ProductID.
Product photo identification number. Foreign
key to ProductPhoto.ProductPhotoID.
Nonclustered index created by a primary key
constraint.

Table Name

Index Name

Column Name

ProductProdu PK_ProductProductPhot
o_ProductID_ProductPh ProductID
ctPhoto
otoID
ProductProdu PK_ProductProductPhot
o_ProductID_ProductPh ProductPhotoID
ctPhoto
otoID

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

NONCLUSTE
RED

true

true

false

false

false

false

NONCLUSTE
RED

true

true

false

false

false

false

Dependent Objects
---None---

ProductReview
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

Comments

nvarchar

3850

EmailAddress

nvarchar

50

ModifiedDate

datetime

ProductID

int

NO

ProductID

int

NO

ProductReviewID

int

NO

ProductReviewID

int

NO

Rating

int

NO

ReviewDate

datetime

(getdate())

(getdate())

Description

YES

Reviewer's comments

NO

Reviewer's e-mail address.

NO

Date and time the record was last updated.


Product identification number. Foreign key to
Product.ProductID.
Nonclustered index.

NO

Primary key for ProductReview records.


Clustered index created by a primary key
constraint.
Product rating given by the reviewer. Scale is
1 to 5 with 5 as the highest rating.
Date review was submitted.

Column Name
ReviewerName

Data Type

Column
Default

Length

nvarchar

50

Is Nullable
NO

Description
Name of the reviewer.

Table Indexes
Table Name

Index Name

Column Name

ProductRevie
w
ProductRevie
w
ProductRevie
w
ProductRevie
w

PK_ProductReview_Prod
uctReviewID
IX_ProductReview_Prod
uctID_Name
IX_ProductReview_Prod
uctID_Name
IX_ProductReview_Prod
uctID_Name

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

ProductReviewID CLUSTERED

true

true

false

false

false

false

NONCLUSTE
RED
NONCLUSTE
RED
NONCLUSTE
RED

false

false

false

false

false

false

false

false

false

false

false

false

false

false

false

false

false

false

ProductID
ReviewerName
Comments

Dependent Objects
---None---

ProductSubcategory
Column Details
Column Name

Data Type

ModifiedDate

datetime

Name

nvarchar

Column
Default
(getdate())

Length

50

Is Nullable

Description

NO

Date and time the record was last updated.

NO

Subcategory description.

Column Name

Data Type

Column
Default

Length
50

Is Nullable

Name

nvarchar

ProductCategoryID

int

NO

ProductCategoryID

int

NO

ProductSubcategoryID

int

NO

ProductSubcategoryID

int

NO

rowguid

uniqueidentifier

Unique nonclustered index. Used to support


replication samples.
Product category identification number.
Foreign key to
ProductCategory.ProductCategoryID.
Unique nonclustered index.

NO

(newid())

Description

Primary key for ProductSubcategory records.


Clustered index created by a primary key
constraint.
ROWGUIDCOL number uniquely identifying
the record. Used to support a merge
replication sample.

NO

Table Indexes
Table Name

Index Name

ProductSubca
tegory
ProductSubca
tegory
ProductSubca
tegory

PK_ProductSubcategory
_ProductSubcategoryID
AK_ProductSubcategory
_Name
AK_ProductSubcategory
_rowguid

Dependent Objects
---None---

Column Name

Index Type

ProductSubcateg CLUSTERED
oryID
NONCLUSTE
Name
RED
NONCLUSTE
rowguid
RED

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

true

true

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

ScrapReason
Column Details
Column Name

Data Type

ModifiedDate

datetime

Name

nvarchar

Name

nvarchar

ScrapReasonID
ScrapReasonID

Column
Default
(getdate())

Length

Is Nullable

Description

NO

Date and time the record was last updated.

50

NO

Failure description.

50

NO

Unique nonclustered index.

smallint

NO

smallint

NO

Primary key for ScrapReason records.


Clustered index created by a primary key
constraint.

Table Indexes
Table Name

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

Column Name

Index Type

ScrapReason PK_ScrapReason_Scrap
ScrapReasonID
ReasonID

CLUSTERED

true

true

false

false

false

false

ScrapReason AK_ScrapReason_Name Name

NONCLUSTE
RED

true

false

false

false

false

false

Dependent Objects
---None---

Index Name

TransactionHistory
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

ActualCost

money

ModifiedDate

datetime

ProductID

int

NO

ProductID

int

NO

Quantity

int

NO

ReferenceOrderID

int

NO

ReferenceOrderID

int

NO

ReferenceOrderLineID

int

((0))

NO

TransactionDate

datetime

(getdate())

NO

TransactionID

int

NO

TransactionID

int

NO

TransactionType

nchar

(getdate())

Description

NO

Product cost.

NO

Date and time the record was last updated.


Product identification number. Foreign key to
Product.ProductID.
Nonclustered index.
Product quantity.
Purchase order, sales order, or work order
identification number.
Nonclustered index.
Line number associated with the purchase
order, sales order, or work order.
Date and time of the transaction.
Primary key for TransactionHistory records.
Clustered index created by a primary key
constraint.
W = WorkOrder, S = SalesOrder, P =
PurchaseOrder

NO

Table Indexes
Table Name
TransactionHi
story
TransactionHi
story

Index Name

Column Name

PK_TransactionHistory_ TransactionID
TransactionID
IX_TransactionHistory_P ProductID
roductID

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

CLUSTERED

true

true

false

false

false

false

NONCLUSTE
RED

false

false

false

false

false

false

Table Name

Index Name

Column Name

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

TransactionHi IX_TransactionHistory_R
NONCLUSTE
eferenceOrderID_Refere ReferenceOrderI
story
D
RED
nceOrderLineID
TransactionHi IX_TransactionHistory_R
NONCLUSTE
eferenceOrderID_Refere ReferenceOrderLi
story
neID
RED
nceOrderLineID

Is
Padded

Is
Hypothetical

false

false

false

false

false

false

false

false

false

false

false

false

Dependent Objects
Dependent Obj

Dependent Obj Type

iduSalesOrderDetail

SQL_TRIGGER

iPurchaseOrderDetail

SQL_TRIGGER

iWorkOrder

SQL_TRIGGER

uPurchaseOrderDetail

SQL_TRIGGER

uWorkOrder

SQL_TRIGGER

TransactionHistoryArchive
Column Details
Column Name

Data Type

Length

Column
Default

Is Nullable

ActualCost

money

ModifiedDate

datetime

ProductID

int

NO

ProductID

int

NO

(getdate())

Description

NO

Product cost.

NO

Date and time the record was last updated.


Product identification number. Foreign key to
Product.ProductID.
Nonclustered index.

Column Name

Data Type

Column
Default

Length

Is Nullable

Quantity

int

NO

ReferenceOrderID

int

NO

ReferenceOrderID

int

NO

ReferenceOrderLineID

int

((0))

NO

TransactionDate

datetime

(getdate())

NO

TransactionID

int

NO

TransactionID

int

NO

TransactionType

nchar

Description
Product quantity.
Purchase order, sales order, or work order
identification number.
Nonclustered index.
Line number associated with the purchase
order, sales order, or work order.
Date and time of the transaction.
Primary key for TransactionHistoryArchive
records.
Clustered index created by a primary key
constraint.
W = Work Order, S = Sales Order, P =
Purchase Order

NO

Table Indexes
Table Name
TransactionHi
storyArchive
TransactionHi
storyArchive

Index Name

PK_TransactionHistoryAr
chive_TransactionID
IX_TransactionHistoryAr
chive_ProductID
TransactionHi IX_TransactionHistoryAr
storyArchive chive_ReferenceOrderID
_ReferenceOrderLineID
TransactionHi IX_TransactionHistoryAr
storyArchive chive_ReferenceOrderID
_ReferenceOrderLineID

Column Name

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

TransactionID

CLUSTERED

true

true

false

false

false

false

ProductID

NONCLUSTE
RED

false

false

false

false

false

false

ReferenceOrderI NONCLUSTE
D
RED

false

false

false

false

false

false

ReferenceOrderLi NONCLUSTE
neID
RED

false

false

false

false

false

false

Dependent Objects
---None---

UnitMeasure
Column Details
Column Name

Data Type

ModifiedDate

datetime

Name

nvarchar

Name

nvarchar

UnitMeasureCode
UnitMeasureCode

Column
Default
(getdate())

Length

Is Nullable

Description

NO

Date and time the record was last updated.

50

NO

Unit of measure description.

50

NO

Unique nonclustered index.

nchar

NO

nchar

NO

Primary key.
Clustered index created by a primary key
constraint.

Table Indexes
Table Name
UnitMeasure
UnitMeasure

Index Name

Index Type

PK_UnitMeasure_UnitMe UnitMeasureCod CLUSTERED


asureCode
e
NONCLUSTE
AK_UnitMeasure_Name Name
RED

Dependent Objects
---None---

Column Name

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

true

true

false

false

false

false

true

false

false

false

false

false

WorkOrder
Column Details
Column Name

Data Type

Length

Column
Default

Is Nullable

Description

DueDate

datetime

NO

Work order due date.

EndDate

datetime

YES

Work order end date.

ModifiedDate

datetime

NO

Date and time the record was last updated.

OrderQty

int

NO

Product quantity to build.

OrderQty

int

NO

ProductID

int

NO

ProductID

int

NO

Nonclustered index.
Product identification number. Foreign key to
Product.ProductID.
Nonclustered index.

ScrappedQty

smallint

NO

Quantity that failed inspection.

ScrapReasonID

smallint

YES

Reason for inspection failure.

StartDate

datetime

NO

Work order start date.

StockedQty

int

NO

Quantity built and put in inventory.

WorkOrderID

int

NO

WorkOrderID

int

NO

Primary key for WorkOrder records.


Clustered index created by a primary key
constraint.

(getdate())

Table Indexes
Table Name
WorkOrder

Index Name

Column Name

PK_WorkOrder_WorkOr WorkOrderID
derID

Index Type
CLUSTERED

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key
true

true

false

false

Is
Padded
false

Is
Hypothetical
false

Table Name
WorkOrder
WorkOrder

Index Name

Column Name

IX_WorkOrder_ScrapRe ScrapReasonID
asonID
IX_WorkOrder_ProductI ProductID
D

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

NONCLUSTE
RED
NONCLUSTE
RED

Is
Padded

Is
Hypothetical

false

false

false

false

false

false

false

false

false

false

false

false

Dependent Objects
Dependent Obj

Dependent Obj Type

uWorkOrder

SQL_TRIGGER

WorkOrder

USER_TABLE

WorkOrderRouting
Column Details
Column Name

Data Type

Length

Column
Default

Is Nullable

Description

ActualCost

money

YES

Actual manufacturing cost.

ActualEndDate

datetime

YES

Actual end date.

ActualResourceHrs

decimal

YES

Number of manufacturing hours used.

ActualStartDate

datetime

YES

LocationID

smallint

NO

ModifiedDate

datetime

OperationSequence

smallint

Actual start date.


Manufacturing location where the part is
processed. Foreign key to
Location.LocationID.
Date and time the record was last updated.
Primary key. Indicates the manufacturing
process sequence.

(getdate())

NO
NO

Column Name

Data Type

Length

Column
Default

Is Nullable

Description

PlannedCost

money

NO

ProductID

int

NO

ProductID

int

NO

Estimated manufacturing cost.


Primary key. Foreign key to
Product.ProductID.
Nonclustered index.

ScheduledEndDate

datetime

NO

Planned manufacturing end date.

ScheduledStartDate

datetime

NO

WorkOrderID

int

NO

WorkOrderID

int

NO

Planned manufacturing start date.


Primary key. Foreign key to
WorkOrder.WorkOrderID.
Clustered index created by a primary key
constraint.

Table Indexes
Table Name

Index Name

Column Name

WorkOrderRo PK_WorkOrderRouting_
WorkOrderID_ProductID WorkOrderID
uting
_OperationSequence
WorkOrderRo PK_WorkOrderRouting_
WorkOrderID_ProductID ProductID
uting
_OperationSequence

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

CLUSTERED

true

true

false

false

false

false

CLUSTERED

true

true

false

false

false

false

true

true

false

false

false

false

false

false

false

false

false

false

WorkOrderRo PK_WorkOrderRouting_
WorkOrderID_ProductID OperationSequen
CLUSTERED
uting
ce
_OperationSequence
WorkOrderRo IX_WorkOrderRouting_P ProductID
NONCLUSTE
uting
roductID
RED

Dependent Objects
---None---

ProductVendor
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

Description
The average span of time (in days) between
placing an order with the vendor and receiving
the purchased product.
Nonclustered index.

AverageLeadTime

int

NO

AverageLeadTime

int

NO

LastReceiptCost

money

YES

LastReceiptDate

datetime

YES

MaxOrderQty

int

NO

MinOrderQty

int

NO

ModifiedDate

datetime

OnOrderQty

int

YES

ProductID

int

NO

ProductID

int

NO

StandardPrice

money

NO

The quantity currently on order.


Primary key. Foreign key to
Product.ProductID.
Clustered index created by a primary key
constraint.
The vendor's usual selling price.

UnitMeasureCode

nchar

NO

The product's unit of measure.

VendorID

int

NO

Primary key. Foreign key to Vendor.VendorID.

VendorID

int

NO

Nonclustered index.

(getdate())

NO

The selling price when last purchased.


Date the product was last received by the
vendor.
The minimum quantity that should be ordered.
The maximum quantity that should be
ordered.
Date and time the record was last updated.

Table Indexes
Table Name

Index Name

Column Name

ProductVendo
r
ProductVendo
r
ProductVendo
r
ProductVendo
r

PK_ProductVendor_Prod
uctID_VendorID
PK_ProductVendor_Prod
uctID_VendorID
IX_ProductVendor_Unit
MeasureCode
IX_ProductVendor_Vend
orID

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

ProductID

CLUSTERED

true

true

false

false

false

false

VendorID

CLUSTERED

true

true

false

false

false

false

UnitMeasureCod NONCLUSTE
e
RED
NONCLUSTE
VendorID
RED

false

false

false

false

false

false

false

false

false

false

false

false

Dependent Objects
---None---

PurchaseOrderDetail
Column Details
Column Name

Data Type

Length

Column
Default

Is Nullable

DueDate

datetime

NO

LineTotal

money

NO

ModifiedDate

datetime

OrderQty

smallint

NO

ProductID

int

NO

PurchaseOrderDetailID

int

NO

PurchaseOrderDetailID

int

NO

(getdate())

NO

Description
Date the product is expected to be received.
Per product subtotal. Computed as OrderQty *
UnitPrice.
Date and time the record was last updated.
Quantity ordered.
Product identification number. Foreign key to
Product.ProductID.
Primary key. One line number per purchased
product.
Nonclustered index.

Column Name

Data Type

Length

Column
Default

Is Nullable

PurchaseOrderID

int

NO

PurchaseOrderID

int

NO

ReceivedQty

decimal

NO

RejectedQty

decimal

NO

StockedQty

decimal

NO

UnitPrice

money

NO

Description
Primary key. Foreign key to
PurchaseOrderHeader.PurchaseOrderID.
Clustered index created by a primary key
constraint.
Quantity actually received from the vendor.
Quantity rejected during inspection.
Quantity accepted into inventory. Computed
as ReceivedQty - RejectedQty.
Vendor's selling price of a single product.

Table Indexes
Table Name

Index Name

Column Name

Index Type

PurchaseOrd PK_PurchaseOrderDetail
_PurchaseOrderID_Purc PurchaseOrderID CLUSTERED
erDetail
haseOrderDetailID
PurchaseOrd PK_PurchaseOrderDetail
_PurchaseOrderID_Purc PurchaseOrderD
CLUSTERED
erDetail
etailID
haseOrderDetailID
PurchaseOrd IX_PurchaseOrderDetail ProductID
erDetail
_ProductID

NONCLUSTE
RED

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key
true

false

false

false

false

true

true

false

false

false

false

false

false

false

false

false

false

Dependent Obj Type

iPurchaseOrderDetail

SQL_TRIGGER

uPurchaseOrderDetail

SQL_TRIGGER

Is
Hypothetical

true

Dependent Objects
Dependent Obj

Is
Padded

Dependent Obj
PurchaseOrderDetail

Dependent Obj Type


USER_TABLE

PurchaseOrderHeader
Column Details
Column Name

Data Type

Length

Column
Default

Is Nullable

Description

EmployeeID

int

Freight

money

((0.00))

NO

Employee who created the purchase order.


Foreign key to Employee.EmployeeID.
Shipping cost.

ModifiedDate

datetime

(getdate())

NO

Date and time the record was last updated.

OrderDate

datetime

(getdate())

NO

Purchase order creation date.

PurchaseOrderID

int

NO

PurchaseOrderID

int

NO

RevisionNumber

tinyint

((0))

NO

RevisionNumber

tinyint

((0))

NO

Primary key.
Clustered index created by a primary key
constraint.
Incremental number to track changes to the
purchase order over time.
Nonclustered index.

ShipDate

datetime

YES

ShipMethodID

int

NO

Status

tinyint

((1))

NO

Status

tinyint

((1))

NO

SubTotal

money

((0.00))

NO

TaxAmt

money

((0.00))

NO

TotalDue

money

NO

NO

Estimated shipment date from the vendor.


Shipping method. Foreign key to
ShipMethod.ShipMethodID.
Order current status. 1 = Pending; 2 =
Approved; 3 = Rejected; 4 = Complete
Nonclustered index.
Purchase order subtotal. Computed as
SUM(PurchaseOrderDetail.LineTotal)for the
appropriate PurchaseOrderID.
Tax amount.
Total due to vendor. Computed as Subtotal +
TaxAmt + Freight.

Column Name
VendorID

Data Type

Length

Column
Default

int

Is Nullable

Description
Vendor with whom the purchase order is
placed. Foreign key to Vendor.VendorID.

NO

Table Indexes
Table Name
PurchaseOrd
erHeader
PurchaseOrd
erHeader
PurchaseOrd
erHeader

Index Name

Column Name

Index Type

PK_PurchaseOrderHead PurchaseOrderID CLUSTERED


er_PurchaseOrderID
IX_PurchaseOrderHeade VendorID
NONCLUSTE
r_VendorID
RED
IX_PurchaseOrderHeade EmployeeID
NONCLUSTE
r_EmployeeID
RED

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key
true

false

false

false

false

false

false

false

false

false

false

false

false

false

false

false

false

Dependent Obj Type

iPurchaseOrderDetail

SQL_TRIGGER

uPurchaseOrderDetail

SQL_TRIGGER

uPurchaseOrderHeader

SQL_TRIGGER

PurchaseOrderHeader

USER_TABLE

ShipMethod
Column Details

Is
Hypothetical

true

Dependent Objects
Dependent Obj

Is
Padded

Column Name

Data Type

Column
Default
(getdate())

Length

Is Nullable

ModifiedDate

datetime

Name

nvarchar

Name

nvarchar

rowguid

uniqueidentifier

(newid())

NO

ShipBase

money

((0.00))

NO

ShipBase

money

((0.00))

NO

ShipMethodID

int

NO

ShipMethodID

int

NO

ShipRate

money

Description

NO

Date and time the record was last updated.

50

NO

Shipping company name.

50

NO

Unique nonclustered index.


ROWGUIDCOL number uniquely identifying
the record. Used to support a merge
replication sample.
Minimum shipping charge.
Unique nonclustered index. Used to support
replication samples.
Primary key for ShipMethod records.
Clustered index created by a primary key
constraint.
Shipping charge per pound.

((0.00))

NO

Table Indexes
Table Name

Index Name

Column Name

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

ShipMethod

PK_ShipMethod_ShipMe ShipMethodID
thodID

CLUSTERED

true

true

false

false

false

false

ShipMethod

AK_ShipMethod_Name

true

false

false

false

false

false

ShipMethod

AK_ShipMethod_rowguid rowguid

NONCLUSTE
RED
NONCLUSTE
RED

true

false

false

false

false

false

Dependent Objects

Name

---None---

Vendor
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

Description

AccountNumber

nvarchar

15

NO

Vendor account (identification) number.

AccountNumber

nvarchar

15

NO

ActiveFlag

bit

CreditRating

tinyint

ModifiedDate

datetime

Unique nonclustered index.


0 = Vendor no longer used. 1 = Vendor is
actively used.
1 = Superior, 2 = Excellent, 3 = Above
average, 4 = Average, 5 = Below average
Date and time the record was last updated.

Name

nvarchar

PreferredVendorStatus

bit

PurchasingWebServiceURL

nvarchar

VendorID

int

NO

VendorID

int

NO

((1))

NO
NO

(getdate())
50

NO
NO

((1))
1024

NO
YES

Company name.
0 = Do not use if another vendor is available.
1 = Preferred over other vendors supplying
the same product.
Vendor URL.
Primary key for Vendor records.
Clustered index created by a primary key
constraint.

Table Indexes
Table Name
Vendor

Index Name
PK_Vendor_VendorID

Column Name
VendorID

Is
Is
Is Unique
Is
Is
Is
Primary
Unique
Constraint
Disabled
Padded
Hypothetical
Key
CLUSTERED
true
true
false
false
false
false
Index Type

Table Name

Index Name

Column Name

AK_Vendor_AccountNu
mber

Vendor

AccountNumber

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

NONCLUSTE
RED

true

false

false

false

Is
Padded
false

Is
Hypothetical
false

Dependent Objects
Dependent Obj
vVendor

Dependent Obj Type


VIEW

VendorAddress
Column Details
Column Name

Data Type

Length

Column
Default

Is Nullable

AddressID

int

NO

AddressID

int

NO

AddressTypeID

int

NO

ModifiedDate

datetime

VendorID

int

NO

VendorID

int

NO

Table Indexes

(getdate())

NO

Description
Primary key. Foreign key to
Address.AddressID.
Nonclustered index.
Address type. Foreign key to
AddressType.AddressTypeID.
Date and time the record was last updated.
Primary key. Foreign key to Vendor.VendorID.
Clustered index created by a primary key
constraint.

Table Name
VendorAddres
s
VendorAddres
s
VendorAddres
s

Index Name

Column Name

PK_VendorAddress_Ven VendorID
dorID_AddressID
PK_VendorAddress_Ven AddressID
dorID_AddressID
IX_VendorAddress_Addr AddressID
essID

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

CLUSTERED

true

true

false

false

false

false

CLUSTERED

true

true

false

false

false

false

NONCLUSTE
RED

false

false

false

false

false

false

Dependent Objects
Dependent Obj
vVendor

Dependent Obj Type


VIEW

VendorContact
Column Details
Column Name

Data Type

Length

Column
Default

Is Nullable

Description

ContactID

int

NO

ContactID

int

NO

ContactTypeID

int

NO

ContactTypeID

int

NO

Contact (Vendor employee) identification


number. Foreign key to Contact.ContactID.
Nonclustered index.
Contact type such as sales manager, or sales
agent.
Nonclustered index.

ModifiedDate

datetime

NO

Date and time the record was last updated.

VendorID

int

NO

VendorID

int

NO

Primary key.
Clustered index created by a primary key
constraint.

(getdate())

Table Indexes
Table Name

Index Name

Column Name

VendorContac
t
VendorContac
t
VendorContac
t
VendorContac
t

PK_VendorContact_Ven
dorID_ContactID
PK_VendorContact_Ven
dorID_ContactID
IX_VendorContact_Cont
actID
IX_VendorContact_Cont
actTypeID

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

VendorID

CLUSTERED

true

true

false

false

false

false

ContactID

CLUSTERED

true

true

false

false

false

false

ContactID

NONCLUSTE
RED
NONCLUSTE
RED

false

false

false

false

false

false

false

false

false

false

false

false

ContactTypeID

Dependent Objects
Dependent Obj

Dependent Obj Type

ufnGetContactInformation

SQL_TABLE_VALUED_FUNCTION

vVendor

VIEW

ContactCreditCard
Column Details
Column Name

Data Type

Length

Column
Default

Is Nullable

ContactID

int

NO

ContactID

int

NO

Description
Customer identification number. Foreign key
to Contact.ContactID.
Clustered index created by a primary key
constraint.

Column Name

Data Type

CreditCardID

int

ModifiedDate

datetime

Column
Default

Length

Is Nullable

Credit card identification number. Foreign key


to CreditCard.CreditCardID.
Date and time the record was last updated.

NO
(getdate())

Description

NO

Table Indexes
Table Name
ContactCredit
Card
ContactCredit
Card

Index Name

Column Name

PK_ContactCreditCard_ ContactID
ContactID_CreditCardID
PK_ContactCreditCard_ CreditCardID
ContactID_CreditCardID

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

CLUSTERED

true

true

false

false

false

false

CLUSTERED

true

true

false

false

false

false

Dependent Objects
---None---

CountryRegionCurrency
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

CountryRegionCode

nvarchar

NO

CountryRegionCode

nvarchar

NO

CurrencyCode

nchar

NO

Description
ISO code for countries and regions. Foreign
key to CountryRegion.CountryRegionCode.
Clustered index created by a primary key
constraint.
ISO standard currency code. Foreign key to
Currency.CurrencyCode.

Column Name

Data Type

CurrencyCode

nchar

ModifiedDate

datetime

Column
Default

Length
3

(getdate())

Is Nullable

Description

NO

Nonclustered index.

NO

Date and time the record was last updated.

Table Indexes
Table Name

Index Name

Column Name

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

CountryRegio PK_CountryRegionCurre
ncy_CountryRegionCode CountryRegionCo
CLUSTERED
nCurrency
de
_CurrencyCode
CountryRegio PK_CountryRegionCurre
ncy_CountryRegionCode CurrencyCode
CLUSTERED
nCurrency
_CurrencyCode
CountryRegio IX_CountryRegionCurren CurrencyCode
nCurrency
cy_CurrencyCode

NONCLUSTE
RED

Is
Padded

true

true

false

false

false

false

true

true

false

false

false

false

false

false

false

false

false

false

Dependent Objects
---None---

CreditCard
Column Details
Column Name

Data Type

Column
Default

Length

Is
Hypothetical

Is Nullable

Description

CardNumber

nvarchar

25

NO

Credit card number.

CardType

nvarchar

50

NO

Credit card name.

Column Name

Data Type

CardType

nvarchar

CreditCardID

Column
Default

Length
50

Is Nullable

Description

NO

Unique nonclustered index.

int

NO

CreditCardID

int

NO

ExpMonth

tinyint

NO

Primary key for CreditCard records.


Clustered index created by a primary key
constraint.
Credit card expiration month.

ExpYear

smallint

NO

Credit card expiration year.

ModifiedDate

datetime

NO

Date and time the record was last updated.

(getdate())

Table Indexes
Table Name
CreditCard
CreditCard

Index Name

PK_CreditCard_CreditCa CreditCardID
rdID
AK_CreditCard_CardNu CardNumber
mber

Dependent Objects
---None---

Currency
Column Details

Column Name

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

CLUSTERED

true

true

false

false

false

false

NONCLUSTE
RED

true

false

false

false

false

false

Column Name

Data Type

Column
Default

Length

Is Nullable

CurrencyCode

nchar

NO

CurrencyCode

nchar

NO

ModifiedDate

datetime

Name

nvarchar

Name

nvarchar

Description

NO

The ISO code for the Currency.


Clustered index created by a primary key
constraint.
Date and time the record was last updated.

50

NO

Currency name.

50

NO

Unique nonclustered index.

(getdate())

Table Indexes
Table Name

Index Name

Column Name

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

Currency

PK_Currency_CurrencyC CurrencyCode
ode

CLUSTERED

true

true

false

false

false

false

Currency

AK_Currency_Name

NONCLUSTE
RED

true

false

false

false

false

false

Name

Dependent Objects
---None---

CurrencyRate
Column Details
Column Name
AverageRate

Data Type
money

Length

Column
Default

Is Nullable
NO

Description
Average exchange rate for the day.

Column Name

Data Type

Column
Default

Length

Is Nullable

CurrencyRateDate

datetime

NO

CurrencyRateDate

datetime

NO

CurrencyRateID

int

NO

CurrencyRateID

int

NO

EndOfDayRate

money

NO

FromCurrencyCode

nchar

ModifiedDate

datetime

ToCurrencyCode

nchar

Date and time the exchange rate was


obtained.
Unique nonclustered index.
Primary key for CurrencyRate records.
Clustered index created by a primary key
constraint.
Final exchange rate for the day.
Exchange rate was converted from this
currency code.
Date and time the record was last updated.
Exchange rate was converted to this currency
code.

NO
(getdate())

Description

NO
NO

Table Indexes
Table Name

Index Name

Column Name

CurrencyRate PK_CurrencyRate_Curre
CurrencyRateID
ncyRateID
AK_CurrencyRate_Curre
CurrencyRateDat
CurrencyRate ncyRateDate_FromCurre
ncyCode_ToCurrencyCo e
de
AK_CurrencyRate_Curre
FromCurrencyCo
CurrencyRate ncyRateDate_FromCurre
ncyCode_ToCurrencyCo de
de
AK_CurrencyRate_Curre
CurrencyRate ncyRateDate_FromCurre
ncyCode_ToCurrencyCo ToCurrencyCode
de

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

CLUSTERED

true

true

false

false

false

false

NONCLUSTE
RED

true

false

false

false

false

false

NONCLUSTE
RED

true

false

false

false

false

false

NONCLUSTE
RED

true

false

false

false

false

false

Dependent Objects
---None---

Customer
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

AccountNumber

varchar

10

NO

AccountNumber

varchar

10

NO

CustomerID

int

NO

CustomerID

int

NO

CustomerType

nchar

ModifiedDate

datetime

(getdate())

NO

rowguid

uniqueidentifier

(newid())

NO

rowguid

uniqueidentifier

(newid())

NO

TerritoryID

int

YES

TerritoryID

int

YES

NO

Description
Unique number identifying the customer
assigned by the accounting system.
Unique nonclustered index.
Primary key for Customer records.
Clustered index created by a primary key
constraint.
Customer type: I = Individual, S = Store
Date and time the record was last updated.
ROWGUIDCOL number uniquely identifying
the record. Used to support a merge
replication sample.
Nonclustered index.
ID of the territory in which the customer is
located. Foreign key to
SalesTerritory.SalesTerritoryID.
Unique nonclustered index. Used to support
replication samples.

Table Indexes
Table Name

Index Name

Column Name

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

Customer

PK_Customer_Customer CustomerID
ID

CLUSTERED

true

true

false

false

false

false

Customer

AK_Customer_rowguid

true

false

false

false

false

false

Customer

AK_Customer_AccountN AccountNumber
umber

true

false

false

false

false

false

Customer

IX_Customer_TerritoryID TerritoryID

NONCLUSTE
RED
NONCLUSTE
RED
NONCLUSTE
RED

false

false

false

false

false

false

rowguid

Dependent Objects
Dependent Obj

Dependent Obj Type

ufnLeadingZeros

SQL_SCALAR_FUNCTION

Customer

USER_TABLE

vIndividualCustomer

VIEW

vStoreWithDemographics

VIEW

CustomerAddress
Column Details
Column Name

Data Type

Length

Column
Default

Is Nullable

AddressID

int

NO

AddressID

int

NO

Description
Primary key. Foreign key to
Address.AddressID.
Unique nonclustered index. Used to support
replication samples.

Column Name

Data Type

Length

Column
Default

Is Nullable

AddressTypeID

int

NO

CustomerID

int

NO

CustomerID

int

NO

ModifiedDate

datetime

(getdate())

NO

rowguid

uniqueidentifier

(newid())

NO

Description
Address type. Foreign key to
AddressType.AddressTypeID.
Primary key. Foreign key to
Customer.CustomerID.
Clustered index created by a primary key
constraint.
Date and time the record was last updated.
ROWGUIDCOL number uniquely identifying
the record. Used to support a merge
replication sample.

Table Indexes
Table Name
CustomerAdd
ress
CustomerAdd
ress
CustomerAdd
ress

Index Name

Column Name

PK_CustomerAddress_C CustomerID
ustomerID_AddressID
PK_CustomerAddress_C AddressID
ustomerID_AddressID
AK_CustomerAddress_r rowguid
owguid

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

CLUSTERED

true

true

false

false

false

false

CLUSTERED

true

true

false

false

false

false

NONCLUSTE
RED

true

false

false

false

false

false

Dependent Objects
Dependent Obj

Dependent Obj Type

vIndividualCustomer

VIEW

vStoreWithDemographics

VIEW

Individual
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

ContactID

int

NO

CustomerID

int

NO

CustomerID

int

NO

Demographics

xml

ModifiedDate

datetime

-1

Identifies the customer in the Contact table.


Foreign key to Contact.ContactID.
Unique customer identification number.
Foreign key to Customer.CustomerID.
Clustered index created by a primary key
constraint.
Personal information such as hobbies, and
income collected from online shoppers. Used
for sales analysis.
Date and time the record was last updated.

YES
(getdate())

Description

NO

Table Indexes
Table Name
Individual
Individual
Individual
Individual
Individual

Index Name
PK_Individual_CustomerI
D
PXML_Individual_Demog
raphics
XMLPATH_Individual_D
emographics
XMLPROPERTY_Individ
ual_Demographics
XMLVALUE_Individual_
Demographics

Column Name

Index Type

CustomerID

CLUSTERED

Demographics

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

true

true

false

false

false

false

XML

false

false

false

false

false

false

Demographics

XML

false

false

false

false

false

false

Demographics

XML

false

false

false

false

false

false

Demographics

XML

false

false

false

false

false

false

Dependent Objects
Dependent Obj

Dependent Obj Type

ufnGetContactInformation

SQL_TABLE_VALUED_FUNCTION

iduSalesOrderDetail

SQL_TRIGGER

iStore

SQL_TRIGGER

iuIndividual

SQL_TRIGGER

vIndividualCustomer

VIEW

vIndividualDemographics

VIEW

SalesOrderDetail
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

CarrierTrackingNumber

nvarchar

25

YES

CarrierTrackingNumber

nvarchar

25

YES

LineTotal

numeric

ModifiedDate

datetime

OrderQty

smallint

NO

ProductID

int

NO

rowguid

uniqueidentifier

NO
(getdate())

(newid())

NO

NO

Description
Shipment tracking number supplied by the
shipper.
Nonclustered index.
Per product subtotal. Computed as UnitPrice *
(1 - UnitPriceDiscount) * OrderQty.
Date and time the record was last updated.
Quantity ordered per product.
Product sold to customer. Foreign key to
Product.ProductID.
ROWGUIDCOL number uniquely identifying
the record. Used to support a merge
replication sample.

Column Name

Data Type

Length

Column
Default

Is Nullable

Description

SalesOrderDetailID

int

NO

SalesOrderDetailID

int

NO

SalesOrderID

int

NO

SalesOrderID

int

NO

SpecialOfferID

int

NO

UnitPrice

money

NO

Primary key. One incremental unique number


per product sold.
Unique nonclustered index. Used to support
replication samples.
Primary key. Foreign key to
SalesOrderHeader.SalesOrderID.
Clustered index created by a primary key
constraint.
Promotional code. Foreign key to
SpecialOffer.SpecialOfferID.
Selling price of a single product.

UnitPriceDiscount

money

NO

Discount amount.

((0.0))

Table Indexes
Table Name

Index Name

Column Name

Index Type

SalesOrderDe PK_SalesOrderDetail_Sa
lesOrderID_SalesOrderD SalesOrderID
CLUSTERED
tail
etailID
SalesOrderDe PK_SalesOrderDetail_Sa
lesOrderID_SalesOrderD SalesOrderDetailI
CLUSTERED
tail
D
etailID
SalesOrderDe
tail
SalesOrderDe
tail

AK_SalesOrderDetail_ro rowguid
wguid
IX_SalesOrderDetail_Pro ProductID
ductID

NONCLUSTE
RED
NONCLUSTE
RED

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

true

true

false

false

false

false

true

true

false

false

false

false

true

false

false

false

false

false

false

false

false

false

false

false

Dependent Objects
Dependent Obj

Dependent Obj Type

iduSalesOrderDetail

SQL_TRIGGER

SalesOrderDetail

USER_TABLE

SalesOrderHeader
Column Details
Column Name

Data Type

Column
Default

Length
15

Is Nullable
YES

Description

AccountNumber

nvarchar

BillToAddressID

int

Comment

nvarchar

ContactID

int

CreditCardApprovalCode

varchar

CreditCardID

int

YES

CurrencyRateID

int

YES

CustomerID

int

NO

DueDate

datetime

NO

Financial accounting number reference.


Customer billing address. Foreign key to
Address.AddressID.
Sales representative comments.
Customer contact identification number.
Foreign key to Contact.ContactID.
Approval code provided by the credit card
company.
Credit card identification number. Foreign key
to CreditCard.CreditCardID.
Currency exchange rate used. Foreign key to
CurrencyRate.CurrencyRateID.
Customer identification number. Foreign key
to Customer.CustomerID.
Date the order is due to the customer.

Freight

money

((0.00))

NO

Shipping cost.

ModifiedDate

datetime

(getdate())

NO

OnlineOrderFlag

bit

((1))

NO

OrderDate

datetime

(getdate())

NO

Date and time the record was last updated.


0 = Order placed by sales person. 1 = Order
placed online by customer.
Dates the sales order was created.

OrderDate

datetime

(getdate())

NO

Unique nonclustered index.

NO
128

YES
NO

15

YES

Column Name

Data Type

Column
Default

Length
25

Is Nullable

PurchaseOrderNumber

nvarchar

YES

RevisionNumber

tinyint

((0))

NO

RevisionNumber

tinyint

((0))

NO

rowguid

uniqueidentifier

(newid())

NO

SalesOrderID

int

NO

SalesOrderID

int

NO

SalesOrderNumber

nvarchar

SalesPersonID

int

YES

ShipDate

datetime

YES

ShipDate

datetime

YES

ShipMethodID

int

NO

ShipToAddressID

int

NO

Status

tinyint

((1))

NO

Status

tinyint

((1))

NO

SubTotal

money

((0.00))

NO

TaxAmt

money

((0.00))

NO

TerritoryID

int

YES

TotalDue

money

NO

25

NO

Description
Customer purchase order number reference.
Incremental number to track changes to the
sales order over time.
Unique nonclustered index. Used to support
replication samples.
ROWGUIDCOL number uniquely identifying
the record. Used to support a merge
replication sample.
Primary key.
Clustered index created by a primary key
constraint.
Unique sales order identification number.
Sales person who created the sales order.
Foreign key to SalesPerson.SalePersonID.
Date the order was shipped to the customer.
Nonclustered index.
Shipping method. Foreign key to
ShipMethod.ShipMethodID.
Customer shipping address. Foreign key to
Address.AddressID.
Order current status. 1 = In process; 2 =
Approved; 3 = Backordered; 4 = Rejected; 5 =
Shipped; 6 = Cancelled
Nonclustered index.
Sales subtotal. Computed as
SUM(SalesOrderDetail.LineTotal)for the
appropriate SalesOrderID.
Tax amount.
Territory in which the sale was made. Foreign
key to SalesTerritory.SalesTerritoryID.
Total due from customer. Computed as
Subtotal + TaxAmt + Freight.

Table Indexes
Table Name

Index Name

SalesOrderHe
ader
SalesOrderHe
ader
SalesOrderHe
ader
SalesOrderHe
ader
SalesOrderHe
ader

PK_SalesOrderHeader_
SalesOrderID
AK_SalesOrderHeader_r
owguid
AK_SalesOrderHeader_
SalesOrderNumber
IX_SalesOrderHeader_C
ustomerID
IX_SalesOrderHeader_S
alesPersonID

Column Name
SalesOrderID

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Hypothetical

CLUSTERED

true

true

false

false

false

false

NONCLUSTE
RED
SalesOrderNumb NONCLUSTE
er
RED
NONCLUSTE
CustomerID
RED
NONCLUSTE
SalesPersonID
RED

true

false

false

false

false

false

true

false

false

false

false

false

false

false

false

false

false

false

false

false

false

false

false

false

rowguid

Dependent Objects
Dependent Obj

Dependent Obj Type

iduSalesOrderDetail

SQL_TRIGGER

uSalesOrderHeader

SQL_TRIGGER

SalesOrderHeader

USER_TABLE

vSalesPersonSalesByFiscalYears

VIEW

SalesOrderHeaderSalesReason
Column Details

Is
Padded

Column Name

Data Type

Length

Column
Default
(getdate())

Is Nullable

ModifiedDate

datetime

NO

SalesOrderID

int

NO

SalesOrderID

int

NO

SalesReasonID

int

NO

Description
Date and time the record was last updated.
Primary key. Foreign key to
SalesOrderHeader.SalesOrderID.
Clustered index created by a primary key
constraint.
Primary key. Foreign key to
SalesReason.SalesReasonID.

Table Indexes
Table Name
SalesOrderHe
aderSalesRea
son
SalesOrderHe
aderSalesRea
son

Index Name

PK_SalesOrderHeaderS
alesReason_SalesOrderI SalesOrderID
D_SalesReasonID
PK_SalesOrderHeaderS
alesReason_SalesOrderI SalesReasonID
D_SalesReasonID

Dependent Objects
---None---

SalesPerson
Column Details

Column Name

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

CLUSTERED

true

true

false

false

false

false

CLUSTERED

true

true

false

false

false

false

Bonus

money

Column
Default
((0.00))

CommissionPct

smallmoney

((0.00))

NO

Commision percent received per sale.

ModifiedDate

datetime

(getdate())

NO

rowguid

uniqueidentifier

(newid())

NO

SalesLastYear

money

((0.00))

NO

Date and time the record was last updated.


ROWGUIDCOL number uniquely identifying
the record. Used to support a merge
replication sample.
Sales total of previous year.

SalesPersonID

int

NO

SalesPersonID

int

NO

SalesQuota

money

YES

SalesYTD

money

TerritoryID

int

YES

TerritoryID

int

YES

Column Name

Data Type

Length

((0.00))

Is Nullable

Description

NO

Bonus due if quota is met.

Primary key for SalesPerson records.


Clustered index created by a primary key
constraint.
Projected yearly sales.

NO

Sales total year to date.


Territory currently assigned to. Foreign key to
SalesTerritory.SalesTerritoryID.
Unique nonclustered index. Used to support
replication samples.

Table Indexes
Table Name
SalesPerson
SalesPerson

Index Name

Column Name

PK_SalesPerson_SalesP SalesPersonID
ersonID
AK_SalesPerson_rowgui rowguid
d

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

CLUSTERED

true

true

false

false

false

false

NONCLUSTE
RED

true

false

false

false

false

false

Dependent Objects
Dependent Obj

Dependent Obj Type

uSalesOrderHeader

SQL_TRIGGER

vSalesPerson

VIEW

vSalesPersonSalesByFiscalYears

VIEW

SalesPersonQuotaHistory
Column Details
Column Name

Data Type

ModifiedDate

datetime

QuotaDate

Length

Column
Default
(getdate())

Is Nullable

Description

NO

Date and time the record was last updated.

datetime

NO

QuotaDate

datetime

NO

rowguid

uniqueidentifier

SalesPersonID

int

NO

SalesPersonID

int

NO

SalesQuota

money

NO

Sales quota date.


Unique nonclustered index. Used to support
replication samples.
ROWGUIDCOL number uniquely identifying
the record. Used to support a merge
replication sample.
Sales person identification number. Foreign
key to SalesPerson.SalesPersonID.
Clustered index created by a primary key
constraint.
Sales quota amount.

Table Indexes

(newid())

NO

Table Name

Index Name

Column Name

SalesPerson PK_SalesPersonQuotaHi
SalesPersonID
QuotaHistory story_SalesPersonID_Qu
otaDate
SalesPerson PK_SalesPersonQuotaHi
QuotaDate
QuotaHistory story_SalesPersonID_Qu
otaDate
SalesPerson AK_SalesPersonQuotaHi rowguid
QuotaHistory story_rowguid

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

CLUSTERED

true

true

false

false

false

false

CLUSTERED

true

true

false

false

false

false

NONCLUSTE
RED

true

false

false

false

false

false

Dependent Objects
---None---

SalesReason
Column Details
Column Name

Data Type

ModifiedDate

datetime

Name

nvarchar

ReasonType

nvarchar

SalesReasonID
SalesReasonID

Column
Default
(getdate())

Length

Is Nullable

Description

NO

Date and time the record was last updated.

50

NO

Sales reason description.

50

NO

Category the sales reason belongs to.

int

NO

int

NO

Primary key for SalesReason records.


Clustered index created by a primary key
constraint.

Table Indexes
Table Name

Index Name

Column Name

SalesReason PK_SalesReason_Sales
SalesReasonID
ReasonID

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

CLUSTERED

true

true

false

false

Is
Padded
false

Is
Hypothetical
false

Dependent Objects
---None---

SalesTaxRate
Column Details
Column Name

Data Type

Column
Default
(getdate())

Length

Is Nullable

ModifiedDate

datetime

Name

nvarchar

rowguid

uniqueidentifier

SalesTaxRateID

int

NO

SalesTaxRateID

int

NO

StateProvinceID

int

NO

StateProvinceID

int

NO

TaxRate

smallmoney

TaxType

tinyint

50
(newid())

((0.00))

Description

NO

Date and time the record was last updated.

NO

Tax rate description.


ROWGUIDCOL number uniquely identifying
the record. Used to support a merge
replication sample.
Primary key for SalesTaxRate records.
Clustered index created by a primary key
constraint.
State, province, or country/region the sales tax
applies to.
Unique nonclustered index.

NO

NO
NO

Tax rate amount.


1 = Tax applied to retail transactions, 2 = Tax
applied to wholesale transactions, 3 = Tax
applied to all sales (retail and wholesale)
transactions.

Column Name
TaxType

Data Type

Length

Column
Default

tinyint

Is Nullable

Description
Unique nonclustered index. Used to support
replication samples.

NO

Table Indexes
Table Name

Index Name

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

Column Name

Index Type

SalesTaxRate PK_SalesTaxRate_Sales
SalesTaxRateID
TaxRateID
SalesTaxRate AK_SalesTaxRate_State
StateProvinceID
ProvinceID_TaxType
SalesTaxRate AK_SalesTaxRate_State
TaxType
ProvinceID_TaxType
SalesTaxRate AK_SalesTaxRate_rowg
rowguid
uid

CLUSTERED

true

true

false

false

false

false

NONCLUSTE
RED
NONCLUSTE
RED
NONCLUSTE
RED

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

Dependent Objects
---None---

SalesTerritory
Column Details
Column Name

Data Type

Length

Column
Default

Is Nullable

CostLastYear

money

((0.00))

NO

CostYTD

money

((0.00))

NO

Description
Business costs in the territory the previous
year.
Business costs in the territory year to date.

Column Name

Data Type

Column
Default

Length

Is Nullable

Description

NO

ISO standard country or region code. Foreign


key to CountryRegion.CountryRegionCode.
Unique nonclustered index. Used to support
replication samples.
Geographic area to which the sales territory
belong.
Date and time the record was last updated.

50

NO

Sales territory description

50

NO

NO

Unique nonclustered index.


ROWGUIDCOL number uniquely identifying
the record. Used to support a merge
replication sample.
Sales in the territory the previous year.

NO

Sales in the territory year to date.

int

NO

int

NO

Primary key for SalesTerritory records.


Clustered index created by a primary key
constraint.

CountryRegionCode

nvarchar

NO

CountryRegionCode

nvarchar

NO

Group

nvarchar

50

NO

ModifiedDate

datetime

Name

nvarchar

Name

nvarchar

rowguid

uniqueidentifier

(newid())

NO

SalesLastYear

money

((0.00))

SalesYTD

money

((0.00))

TerritoryID
TerritoryID

(getdate())

Table Indexes
Table Name

Index Name

Column Name

SalesTerritory PK_SalesTerritory_Territ
TerritoryID
oryID
SalesTerritory AK_SalesTerritory_Nam
Name
e
SalesTerritory AK_SalesTerritory_rowg
rowguid
uid

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

CLUSTERED

true

true

false

false

false

false

NONCLUSTE
RED
NONCLUSTE
RED

true

false

false

false

false

false

true

false

false

false

false

false

Dependent Objects
Dependent Obj

Dependent Obj Type

uSalesOrderHeader

SQL_TRIGGER

vSalesPerson

VIEW

vSalesPersonSalesByFiscalYears

VIEW

SalesTerritoryHistory
Column Details
Column Name

Data Type

Length

Column
Default

Is Nullable

EndDate

datetime

YES

ModifiedDate

datetime

(getdate())

NO

rowguid

uniqueidentifier

(newid())

NO

SalesPersonID

int

NO

SalesPersonID

int

NO

StartDate

datetime

NO

TerritoryID

int

NO

TerritoryID

int

NO

Description
Date the sales representative left work in the
territory.
Date and time the record was last updated.
ROWGUIDCOL number uniquely identifying
the record. Used to support a merge
replication sample.
Primary key for SalesTerritoryHistory records.
Clustered index created by a primary key
constraint.
Date the sales representive started work in the
territory.
Territory identification number. Foreign key to
SalesTerritory.SalesTerritoryID.
Unique nonclustered index. Used to support
replication samples.

Table Indexes
Table Name

Index Name

Column Name

SalesTerritory PK_SalesTerritoryHistory
_SalesPersonID_StartDa SalesPersonID
History
te_TerritoryID
SalesTerritory PK_SalesTerritoryHistory
_SalesPersonID_StartDa TerritoryID
History
te_TerritoryID
SalesTerritory PK_SalesTerritoryHistory
_SalesPersonID_StartDa StartDate
History
te_TerritoryID
SalesTerritory AK_SalesTerritoryHistory rowguid
History
_rowguid

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

CLUSTERED

true

true

false

false

false

false

CLUSTERED

true

true

false

false

false

false

CLUSTERED

true

true

false

false

false

false

NONCLUSTE
RED

true

false

false

false

false

false

Dependent Objects
---None---

ShoppingCartItem
Column Details

DateCreated

datetime

Column
Default
(getdate())

ModifiedDate

datetime

(getdate())

ProductID

int

Quantity

int

ShoppingCartID

nvarchar

50

NO

Shopping cart identification number.

ShoppingCartID

nvarchar

50

NO

Nonclustered index.

Column Name

Data Type

Length

Is Nullable
NO

Date the time the record was created.

NO

NO

Date and time the record was last updated.


Product ordered. Foreign key to
Product.ProductID.
Product quantity ordered.

NO
((1))

Description

Column Name

Data Type

Column
Default

Length

Is Nullable

ShoppingCartItemID

int

NO

ShoppingCartItemID

int

NO

Description
Primary key for ShoppingCartItem records.
Clustered index created by a primary key
constraint.

Table Indexes
Table Name

Index Name

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

Column Name

Index Type

ShoppingCartI PK_ShoppingCartItem_S ShoppingCartIte


tem
hoppingCartItemID
mID
ShoppingCartI IX_ShoppingCartItem_S
hoppingCartID_ProductI ShoppingCartID
tem
D

CLUSTERED

true

true

false

false

false

false

NONCLUSTE
RED

false

false

false

false

false

false

ShoppingCartI IX_ShoppingCartItem_S
hoppingCartID_ProductI ProductID
tem
D

NONCLUSTE
RED

false

false

false

false

false

false

Dependent Objects
---None---

SpecialOffer
Column Details
Column Name
Category

Data Type
nvarchar

Column
Default

Length
50

Is Nullable
NO

Description
Group the discount applies to such as
Reseller or Customer.

Column Name

Data Type

Column
Default

Length

Is Nullable

Description

nvarchar

255

NO

Description

nvarchar

255

NO

DiscountPct

smallmoney

EndDate

Description

NO

Discount description.
Unique nonclustered index. Used to support
replication samples.
Discount precentage.

datetime

NO

Discount end date.

MaxQty

int

YES

Maximum discount percent allowed.

MinQty

int

((0))

NO

Minimum discount percent allowed.

ModifiedDate

datetime

(getdate())

NO

rowguid

uniqueidentifier

(newid())

NO

SpecialOfferID

int

NO

SpecialOfferID

int

NO

StartDate

datetime

NO

Date and time the record was last updated.


ROWGUIDCOL number uniquely identifying
the record. Used to support a merge
replication sample.
Primary key for SpecialOffer records.
Clustered index created by a primary key
constraint.
Discount start date.

Type

nvarchar

NO

Discount type category.

((0.00))

50

Table Indexes
Table Name
SpecialOffer
SpecialOffer

Index Name

Column Name

PK_SpecialOffer_Special SpecialOfferID
OfferID
AK_SpecialOffer_rowgui rowguid
d

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

CLUSTERED

true

true

false

false

false

false

NONCLUSTE
RED

true

false

false

false

false

false

Dependent Objects
---None---

SpecialOfferProduct
Column Details
Column Name

Data Type

Length

Column
Default
(getdate())

Is Nullable

ModifiedDate

datetime

NO

ProductID

int

NO

ProductID

int

NO

rowguid

uniqueidentifier

(newid())

NO

rowguid

uniqueidentifier

(newid())

NO

SpecialOfferID

int

NO

SpecialOfferID

int

NO

Description
Date and time the record was last updated.
Product identification number. Foreign key to
Product.ProductID.
Unique nonclustered index. Used to support
replication samples.
ROWGUIDCOL number uniquely identifying
the record. Used to support a merge
replication sample.
Nonclustered index.
Primary key for SpecialOfferProduct records.
Clustered index created by a primary key
constraint.

Table Indexes
Table Name

Index Name

Column Name

SpecialOfferP PK_SpecialOfferProduct
_SpecialOfferID_Product SpecialOfferID
roduct
ID
SpecialOfferP PK_SpecialOfferProduct
_SpecialOfferID_Product ProductID
roduct
ID

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

CLUSTERED

true

true

false

false

false

false

CLUSTERED

true

true

false

false

false

false

Table Name
SpecialOfferP
roduct
SpecialOfferP
roduct

Index Name

Column Name

AK_SpecialOfferProduct rowguid
_rowguid
IX_SpecialOfferProduct_ ProductID
ProductID

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

NONCLUSTE
RED
NONCLUSTE
RED

Is
Padded

Is
Hypothetical

true

false

false

false

false

false

false

false

false

false

false

false

Dependent Objects
---None---

Store
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

CustomerID

int

NO

CustomerID

int

NO

Demographics

xml

ModifiedDate

datetime

Name

nvarchar

50

NO

Name

nvarchar

50

NO

rowguid

uniqueidentifier

-1

YES
(getdate())

(newid())

NO

NO

Description
Primary key. Foreign key to
Customer.CustomerID.
Clustered index created by a primary key
constraint.
Demographic informationg about the store
such as the number of employees, annual
sales and store type.
Date and time the record was last updated.
Name of the store.
Unique nonclustered index. Used to support
replication samples.
ROWGUIDCOL number uniquely identifying
the record. Used to support a merge
replication sample.

Column Name

Data Type

Length

Column
Default

Is Nullable

SalesPersonID

int

YES

SalesPersonID

int

YES

Description
ID of the sales person assigned to the
customer. Foreign key to
SalesPerson.SalesPersonID.
Nonclustered index.

Table Indexes

Store

PK_Store_CustomerID

CustomerID

Store

AK_Store_rowguid

rowguid

Store

IX_Store_SalesPersonID SalesPersonID

Is
Is
Is Unique
Is
Is
Is
Primary
Unique
Constraint
Disabled
Padded
Hypothetical
Key
CLUSTERED
true
true
false
false
false
false
NONCLUSTE
true
false
false
false
false
false
RED
NONCLUSTE
false
false
false
false
false
false
RED

Store

PXML_Store_Demograp Demographics
hics

XML

Table Name

Index Name

Column Name

Index Type

false

false

false

Dependent Objects
Dependent Obj

Dependent Obj Type

iuIndividual

SQL_TRIGGER

vStoreWithDemographics

VIEW

StoreContact
Column Details

false

false

false

Column Name

Data Type

Length

Column
Default

Is Nullable

ContactID

int

NO

ContactID

int

NO

ContactTypeID

int

NO

ContactTypeID

int

NO

CustomerID

int

NO

CustomerID

int

NO

ModifiedDate

datetime

(getdate())

NO

rowguid

uniqueidentifier

(newid())

NO

rowguid

uniqueidentifier

(newid())

NO

Description
Contact (store employee) identification
number. Foreign key to Contact.ContactID.
Unique nonclustered index. Used to support
replication samples.
Contact type such as owner or purchasing
agent. Foreign key to
ContactType.ContactTypeID.
Nonclustered index.
Store identification number. Foreign key to
Customer.CustomerID.
Clustered index created by a primary key
constraint.
Date and time the record was last updated.
ROWGUIDCOL number uniquely identifying
the record. Used to support a merge
replication sample.
Nonclustered index.

Table Indexes
Table Name

Index Name

Column Name

StoreContact PK_StoreContact_Custo
CustomerID
merID_ContactID
StoreContact PK_StoreContact_Custo
ContactID
merID_ContactID
StoreContact AK_StoreContact_rowgui
rowguid
d
StoreContact IX_StoreContact_Contac
ContactID
tID

Index Type

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key

Is
Padded

Is
Hypothetical

CLUSTERED

true

true

false

false

false

false

CLUSTERED

true

true

false

false

false

false

NONCLUSTE
RED
NONCLUSTE
RED

true

false

false

false

false

false

false

false

false

false

false

false

Table Name

Index Name

Column Name

StoreContact IX_StoreContact_Contac
ContactTypeID
tTypeID

Index Type
NONCLUSTE
RED

Is
Is
Is Unique
Is
Primary
Unique
Constraint
Disabled
Key
false

false

false

false

Is
Padded
false

Dependent Objects
Dependent Obj

Dependent Obj Type

ufnGetContactInformation

SQL_TABLE_VALUED_FUNCTION

vStoreWithDemographics

VIEW

Views
View Name

View Schema

vEmployee

HumanResources

vEmployeeDepartment

HumanResources

vEmployeeDepartmentHistory

HumanResources

vJobCandidate

HumanResources

vJobCandidateEducation

HumanResources

vJobCandidateEmployment

HumanResources

vAdditionalContactInfo

Person

vStateProvinceCountryRegion

Person

vProductAndDescription

Production

vProductModelCatalogDescription

Production

vProductModelInstructions

Production

Is
Hypothetical
false

View Name

View Schema

vVendor

Purchasing

vIndividualCustomer

Sales

vIndividualDemographics

Sales

vSalesPerson

Sales

vSalesPersonSalesByFiscalYears

Sales

vStoreWithDemographics

Sales

vEmployee
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

AdditionalContactInfo

xml

-1

YES

AddressLine1

nvarchar

60

NO

AddressLine2

nvarchar

60

YES

City

nvarchar

30

NO

CountryRegionName

nvarchar

50

NO

EmailAddress

nvarchar

50

YES

EmailPromotion

int

NO

EmployeeID

int

NO

FirstName

nvarchar

50

NO

JobTitle

nvarchar

50

NO

LastName

nvarchar

50

NO

MiddleName

nvarchar

50

YES

Phone

nvarchar

25

YES

Description

Column Name

Data Type

Column
Default

Length

Is Nullable

PostalCode

nvarchar

15

NO

StateProvinceName

nvarchar

50

NO

Suffix

nvarchar

10

YES

Title

nvarchar

YES

View Definition

Description

View Definition
CREATE VIEW [HumanResources].[vEmployee]
AS
SELECT
e.[EmployeeID]
,c.[Title]
,c.[FirstName]
,c.[MiddleName]
,c.[LastName]
,c.[Suffix]
,e.[Title] AS [JobTitle]
,c.[Phone]
,c.[EmailAddress]
,c.[EmailPromotion]
,a.[AddressLine1]
,a.[AddressLine2]
,a.[City]
,sp.[Name] AS [StateProvinceName]
,a.[PostalCode]
,cr.[Name] AS [CountryRegionName]
,c.[AdditionalContactInfo]
FROM [HumanResources].[Employee] e
INNER JOIN [Person].[Contact] c
ON c.[ContactID] = e.[ContactID]
INNER JOIN [HumanResources].[EmployeeAddress] ea
ON e.[EmployeeID] = ea.[EmployeeID]
INNER JOIN [Person].[Address] a
ON ea.[AddressID] = a.[AddressID]
INNER JOIN [Person].[StateProvince] sp
ON sp.[StateProvinceID] = a.[StateProvinceID]
INNER JOIN [Person].[CountryRegion] cr
ON cr.[CountryRegionCode] = sp.[CountryRegionCode];

Tables Used in View


Table Catalog
AdventureWorks

Table Schema
HumanResources

Table Name
Employee

Table Catalog

Table Schema

Table Name

AdventureWorks

HumanResources

EmployeeAddress

AdventureWorks

Person

Address

AdventureWorks

Person

Contact

AdventureWorks

Person

CountryRegion

AdventureWorks

Person

StateProvince

Dependent Objects
Dependent Obj

Dependent Obj Type

Address

USER_TABLE

Contact

USER_TABLE

CountryRegion

USER_TABLE

Employee

USER_TABLE

EmployeeAddress

USER_TABLE

StateProvince

USER_TABLE

vEmployeeDepartment
Column Details
Column Name

Data Type

Column
Default

Length
50

Is Nullable

Department

nvarchar

NO

EmployeeID

int

FirstName

nvarchar

50

NO

GroupName

nvarchar

50

NO

NO

Description

Column Name

Data Type

Column
Default

Length

Is Nullable

JobTitle

nvarchar

50

NO

LastName

nvarchar

50

NO

MiddleName

nvarchar

50

YES

StartDate

datetime

Suffix

nvarchar

10

YES

Title

nvarchar

YES

NO

View Definition
View Definition
CREATE VIEW [HumanResources].[vEmployeeDepartment]
AS
SELECT
e.[EmployeeID]
,c.[Title]
,c.[FirstName]
,c.[MiddleName]
,c.[LastName]
,c.[Suffix]
,e.[Title] AS [JobTitle]
,d.[Name] AS [Department]
,d.[GroupName]
,edh.[StartDate]
FROM [HumanResources].[Employee] e
INNER JOIN [Person].[Contact] c
ON c.[ContactID] = e.[ContactID]
INNER JOIN [HumanResources].[EmployeeDepartmentHistory] edh
ON e.[EmployeeID] = edh.[EmployeeID]
INNER JOIN [HumanResources].[Department] d
ON edh.[DepartmentID] = d.[DepartmentID]
WHERE GETDATE() BETWEEN edh.[StartDate] AND ISNULL(edh.[EndDate], GETDATE());

Description

Tables Used in View


Table Catalog

Table Schema

Table Name

AdventureWorks

HumanResources

Department

AdventureWorks

HumanResources

Employee

AdventureWorks

HumanResources

EmployeeDepartmentHistory

AdventureWorks

Person

Contact

Dependent Objects
Dependent Obj

Dependent Obj Type

Contact

USER_TABLE

Department

USER_TABLE

Employee

USER_TABLE

EmployeeDepartmentHistory

USER_TABLE

vEmployeeDepartmentHistory
Column Details
Column Name

Data Type

Column
Default

Length
50

Is Nullable

Department

nvarchar

NO

EmployeeID

int

NO

EndDate

datetime

YES

Description

Column Name

Data Type

Column
Default

Length

Is Nullable

FirstName

nvarchar

50

NO

GroupName

nvarchar

50

NO

LastName

nvarchar

50

NO

MiddleName

nvarchar

50

YES

Shift

nvarchar

50

NO

StartDate

datetime

Suffix

nvarchar

10

YES

Title

nvarchar

YES

View Definition

NO

Description

View Definition
CREATE VIEW [HumanResources].[vEmployeeDepartmentHistory]
AS
SELECT
e.[EmployeeID]
,c.[Title]
,c.[FirstName]
,c.[MiddleName]
,c.[LastName]
,c.[Suffix]
,s.[Name] AS [Shift]
,d.[Name] AS [Department]
,d.[GroupName]
,edh.[StartDate]
,edh.[EndDate]
FROM [HumanResources].[Employee] e
INNER JOIN [Person].[Contact] c
ON c.[ContactID] = e.[ContactID]
INNER JOIN [HumanResources].[EmployeeDepartmentHistory] edh
ON e.[EmployeeID] = edh.[EmployeeID]
INNER JOIN [HumanResources].[Department] d
ON edh.[DepartmentID] = d.[DepartmentID]
INNER JOIN [HumanResources].[Shift] s
ON s.[ShiftID] = edh.[ShiftID];

Tables Used in View


Table Catalog

Table Schema

Table Name

AdventureWorks

HumanResources

Department

AdventureWorks

HumanResources

Employee

AdventureWorks

HumanResources

EmployeeDepartmentHistory

AdventureWorks

HumanResources

Shift

AdventureWorks

Person

Contact

Dependent Objects
Dependent Obj

Dependent Obj Type

Contact

USER_TABLE

Department

USER_TABLE

Employee

USER_TABLE

EmployeeDepartmentHistory

USER_TABLE

Shift

USER_TABLE

vJobCandidate
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

Addr.Loc.City

nvarchar

100

YES

Addr.Loc.CountryRegion

nvarchar

100

YES

Addr.Loc.State

nvarchar

100

YES

Addr.PostalCode

nvarchar

20

YES

Addr.Type

nvarchar

30

YES

EMail

nvarchar

-1

YES

EmployeeID

int

YES

JobCandidateID

int

NO

ModifiedDate

datetime

NO

Name.First

nvarchar

30

YES

Name.Last

nvarchar

30

YES

Description

Column Name

Data Type

Column
Default

Length

Is Nullable

Name.Middle

nvarchar

30

YES

Name.Prefix

nvarchar

30

YES

Name.Suffix

nvarchar

30

YES

Skills

nvarchar

-1

YES

WebSite

nvarchar

-1

YES

View Definition

Description

View Definition
CREATE VIEW [HumanResources].[vJobCandidate]
AS
SELECT
jc.[JobCandidateID]
,jc.[EmployeeID]
,[Resume].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(/Resume/Name/Name.Prefix)[1]', 'nvarchar(30)') AS [Name.Prefix]
,[Resume].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(/Resume/Name/Name.First)[1]', 'nvarchar(30)') AS [Name.First]
,[Resume].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(/Resume/Name/Name.Middle)[1]', 'nvarchar(30)') AS [Name.Middle]
,[Resume].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(/Resume/Name/Name.Last)[1]', 'nvarchar(30)') AS [Name.Last]
,[Resume].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(/Resume/Name/Name.Suffix)[1]', 'nvarchar(30)') AS [Name.Suffix]
,[Resume].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(/Resume/Skills)[1]', 'nvarchar(max)') AS [Skills]
,[Resume].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(Address/Addr.Type)[1]', 'nvarchar(30)') AS [Addr.Type]
,[Resume].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(Address/Addr.Location/Location/Loc.CountryRegion)[1]', 'nvarchar(100)') AS [Addr.Loc.CountryRegion]
,[Resume].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(Address/Addr.Location/Location/Loc.State)[1]', 'nvarchar(100)') AS [Addr.Loc.State]
,[Resume].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(Address/Addr.Location/Location/Loc.City)[1]', 'nvarchar(100)') AS [Addr.Loc.City]
,[Resume].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(Address/Addr.PostalCode)[1]', 'nvarchar(20)') AS [Addr.PostalCode]
,[Resume].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(/Resume/EMail)[1]', 'nvarchar(max)') AS [EMail]
,[Resume].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(/Resume/WebSite)[1]', 'nvarchar(max)') AS [WebSite]
,jc.[ModifiedDate]
FROM [HumanResources].[JobCandidate] jc
CROSS APPLY jc.[Resume].nodes(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/Resume";
/Resume') AS Resume(ref);

Tables Used in View


Table Catalog

Table Schema

AdventureWorks

Table Name

HumanResources

JobCandidate

Dependent Objects
Dependent Obj
JobCandidate

Dependent Obj Type


USER_TABLE

vJobCandidateEducation
Column Details
Column Name

Data Type

Column
Default

Length
50

Is Nullable

Edu.Degree

nvarchar

YES

Edu.EndDate

datetime

Edu.GPA

nvarchar

YES

Edu.GPAScale

nvarchar

YES

Edu.Level

nvarchar

-1

YES

Edu.Loc.City

nvarchar

100

YES

Edu.Loc.CountryRegion

nvarchar

100

YES

Edu.Loc.State

nvarchar

100

YES

Edu.Major

nvarchar

50

YES

Edu.Minor

nvarchar

50

YES

Edu.School

nvarchar

100

YES

Edu.StartDate

datetime

YES

YES

Description

Column Name
JobCandidateID

View Definition

Data Type
int

Length

Column
Default

Is Nullable
NO

Description

View Definition
CREATE VIEW [HumanResources].[vJobCandidateEducation]
AS
SELECT
jc.[JobCandidateID]
,[Education].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(Edu.Level)[1]', 'nvarchar(max)') AS [Edu.Level]
,CONVERT(datetime, REPLACE([Education].ref.value(N'declare default element namespace
"http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(Edu.StartDate)[1]', 'nvarchar(20)') ,'Z', ''), 101) AS [Edu.StartDate]
,CONVERT(datetime, REPLACE([Education].ref.value(N'declare default element namespace
"http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(Edu.EndDate)[1]', 'nvarchar(20)') ,'Z', ''), 101) AS [Edu.EndDate]
,[Education].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(Edu.Degree)[1]', 'nvarchar(50)') AS [Edu.Degree]
,[Education].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(Edu.Major)[1]', 'nvarchar(50)') AS [Edu.Major]
,[Education].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(Edu.Minor)[1]', 'nvarchar(50)') AS [Edu.Minor]
,[Education].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(Edu.GPA)[1]', 'nvarchar(5)') AS [Edu.GPA]
,[Education].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(Edu.GPAScale)[1]', 'nvarchar(5)') AS [Edu.GPAScale]
,[Education].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(Edu.School)[1]', 'nvarchar(100)') AS [Edu.School]
,[Education].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(Edu.Location/Location/Loc.CountryRegion)[1]', 'nvarchar(100)') AS [Edu.Loc.CountryRegion]
,[Education].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(Edu.Location/Location/Loc.State)[1]', 'nvarchar(100)') AS [Edu.Loc.State]
,[Education].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(Edu.Location/Location/Loc.City)[1]', 'nvarchar(100)') AS [Edu.Loc.City]
FROM [HumanResources].[JobCandidate] jc
CROSS APPLY jc.[Resume].nodes(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/Resume";
/Resume/Education') AS [Education](ref);

Tables Used in View


Table Catalog

Table Schema

AdventureWorks

Table Name

HumanResources

JobCandidate

Dependent Objects
Dependent Obj
JobCandidate

Dependent Obj Type


USER_TABLE

vJobCandidateEmployment
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

Emp.EndDate

datetime

YES

Emp.FunctionCategory

nvarchar

-1

YES

Emp.IndustryCategory

nvarchar

-1

YES

Emp.JobTitle

nvarchar

100

YES

Emp.Loc.City

nvarchar

-1

YES

Emp.Loc.CountryRegion

nvarchar

-1

YES

Emp.Loc.State

nvarchar

-1

YES

Emp.OrgName

nvarchar

100

YES

Emp.Responsibility

nvarchar

-1

YES

Emp.StartDate

datetime

YES

JobCandidateID

int

NO

Description

View Definition
View Definition
CREATE VIEW [HumanResources].[vJobCandidateEmployment]
AS
SELECT
jc.[JobCandidateID]
,CONVERT(datetime, REPLACE([Employment].ref.value(N'declare default element namespace
"http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(Emp.StartDate)[1]', 'nvarchar(20)') ,'Z', ''), 101) AS [Emp.StartDate]
,CONVERT(datetime, REPLACE([Employment].ref.value(N'declare default element namespace
"http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(Emp.EndDate)[1]', 'nvarchar(20)') ,'Z', ''), 101) AS [Emp.EndDate]
,[Employment].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(Emp.OrgName)[1]', 'nvarchar(100)') AS [Emp.OrgName]
,[Employment].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(Emp.JobTitle)[1]', 'nvarchar(100)') AS [Emp.JobTitle]
,[Employment].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(Emp.Responsibility)[1]', 'nvarchar(max)') AS [Emp.Responsibility]
,[Employment].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(Emp.FunctionCategory)[1]', 'nvarchar(max)') AS [Emp.FunctionCategory]
,[Employment].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(Emp.IndustryCategory)[1]', 'nvarchar(max)') AS [Emp.IndustryCategory]
,[Employment].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(Emp.Location/Location/Loc.CountryRegion)[1]', 'nvarchar(max)') AS [Emp.Loc.CountryRegion]
,[Employment].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(Emp.Location/Location/Loc.State)[1]', 'nvarchar(max)') AS [Emp.Loc.State]
,[Employment].ref.value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume";
(Emp.Location/Location/Loc.City)[1]', 'nvarchar(max)') AS [Emp.Loc.City]
FROM [HumanResources].[JobCandidate] jc
CROSS APPLY jc.[Resume].nodes(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/Resume";
/Resume/Employment') AS Employment(ref);

Tables Used in View


Table Catalog

Table Schema

AdventureWorks

Table Name

HumanResources

JobCandidate

Dependent Objects
Dependent Obj
JobCandidate

Dependent Obj Type


USER_TABLE

vAdditionalContactInfo
Column Details
Column Name

Data Type

Column
Default

Length
50

Is Nullable

City

nvarchar

YES

ContactID

int

CountryRegion

nvarchar

50

YES

EMailAddress

nvarchar

128

YES

EMailSpecialInstructions

nvarchar

-1

YES

EMailTelephoneNumber

nvarchar

50

YES

FirstName
nvarchar
HomeAddressSpecialInstructio nvarchar
ns
LastName
nvarchar

50

NO

-1

YES

50

NO

MiddleName

nvarchar

50

YES

ModifiedDate

datetime

PostalCode

nvarchar

NO

NO
50

YES

Description

Column Name

Data Type

Column
Default

Length

Is Nullable

rowguid

uniqueidentifier

StateProvince

nvarchar

50

YES

Street

nvarchar

50

YES

TelephoneNumber

nvarchar

50

YES

TelephoneSpecialInstructions nvarchar

-1

YES

View Definition

NO

Description

View Definition
CREATE VIEW [Person].[vAdditionalContactInfo]
AS
SELECT
[ContactID]
,[FirstName]
,[MiddleName]
,[LastName]
,[ContactInfo].ref.value(N'declare namespace ci="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo";
declare namespace act="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes";
(act:telephoneNumber)[1]/act:number', 'nvarchar(50)') AS [TelephoneNumber]
,LTRIM(RTRIM([ContactInfo].ref.value(N'declare namespace ci="http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/ContactInfo";
declare namespace act="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes";
(act:telephoneNumber/act:SpecialInstructions/text())[1]', 'nvarchar(max)'))) AS [TelephoneSpecialInstructions]
,[ContactInfo].ref.value(N'declare namespace ci="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo";
declare namespace act="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes";
(act:homePostalAddress/act:Street)[1]', 'nvarchar(50)') AS [Street]
,[ContactInfo].ref.value(N'declare namespace ci="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo";
declare namespace act="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes";
(act:homePostalAddress/act:City)[1]', 'nvarchar(50)') AS [City]
,[ContactInfo].ref.value(N'declare namespace ci="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo";
declare namespace act="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes";
(act:homePostalAddress/act:StateProvince)[1]', 'nvarchar(50)') AS [StateProvince]
,[ContactInfo].ref.value(N'declare namespace ci="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo";
declare namespace act="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes";
(act:homePostalAddress/act:PostalCode)[1]', 'nvarchar(50)') AS [PostalCode]
,[ContactInfo].ref.value(N'declare namespace ci="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo";
declare namespace act="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes";
(act:homePostalAddress/act:CountryRegion)[1]', 'nvarchar(50)') AS [CountryRegion]
,[ContactInfo].ref.value(N'declare namespace ci="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo";
declare namespace act="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes";
(act:homePostalAddress/act:SpecialInstructions/text())[1]', 'nvarchar(max)') AS [HomeAddressSpecialInstructions]
,[ContactInfo].ref.value(N'declare namespace ci="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo";
declare namespace act="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes";
(act:eMail/act:eMailAddress)[1]', 'nvarchar(128)') AS [EMailAddress]
,LTRIM(RTRIM([ContactInfo].ref.value(N'declare namespace ci="http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/ContactInfo";
declare namespace act="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes";
(act:eMail/act:SpecialInstructions/text())[1]', 'nvarchar(max)'))) AS [EMailSpecialInstructions]
,[ContactInfo].ref.value(N'declare namespace ci="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactInfo";

View Definition
declare namespace act="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ContactTypes";
(act:eMail/act:SpecialInstructions/act:telephoneNumber/act:number)[1]', 'nvarchar(50)') AS [EMailTelephoneNumber]
,[rowguid]
,[ModifiedDate]
FROM [Person].[Contact]
OUTER APPLY [AdditionalContactInfo].nodes(

Tables Used in View


Table Catalog

Table Schema

AdventureWorks

Table Name

Person

Contact

Dependent Objects
Dependent Obj
Contact

Dependent Obj Type


USER_TABLE

vStateProvinceCountryRegion
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

CountryRegionCode

nvarchar

NO

CountryRegionName

nvarchar

50

NO

IsOnlyStateProvinceFlag

bit

StateProvinceCode

nchar

NO
3

NO

Description

Column Name

Data Type

StateProvinceID

int

StateProvinceName

nvarchar

TerritoryID

int

Column
Default

Length

Is Nullable
NO

50

Description
Clustered index on the view
vStateProvinceCountryRegion.

NO
NO

View Definition
View Definition
CREATE VIEW [Person].[vStateProvinceCountryRegion]
WITH SCHEMABINDING
AS
SELECT
sp.[StateProvinceID]
,sp.[StateProvinceCode]
,sp.[IsOnlyStateProvinceFlag]
,sp.[Name] AS [StateProvinceName]
,sp.[TerritoryID]
,cr.[CountryRegionCode]
,cr.[Name] AS [CountryRegionName]
FROM [Person].[StateProvince] sp
INNER JOIN [Person].[CountryRegion] cr
ON sp.[CountryRegionCode] = cr.[CountryRegionCode];

Tables Used in View


Table Catalog

Table Schema

Table Name

AdventureWorks

Person

CountryRegion

AdventureWorks

Person

StateProvince

Dependent Objects
Dependent Obj

Dependent Obj Type

CountryRegion

USER_TABLE

StateProvince

USER_TABLE

vProductAndDescription
Column Details
Column Name

Data Type

CultureID

nchar

Description

Column
Default

Length

Is Nullable

NO

nvarchar

400

NO

Name

nvarchar

50

NO

ProductID

int

ProductModel

nvarchar

View Definition

NO
50

NO

Description

Clustered index on the view


vProductAndDescription.

View Definition
CREATE VIEW [Production].[vProductAndDescription]
WITH SCHEMABINDING
AS
-- View (indexed or standard) to display products and product descriptions by language.
SELECT
p.[ProductID]
,p.[Name]
,pm.[Name] AS [ProductModel]
,pmx.[CultureID]
,pd.[Description]
FROM [Production].[Product] p
INNER JOIN [Production].[ProductModel] pm
ON p.[ProductModelID] = pm.[ProductModelID]
INNER JOIN [Production].[ProductModelProductDescriptionCulture] pmx
ON pm.[ProductModelID] = pmx.[ProductModelID]
INNER JOIN [Production].[ProductDescription] pd
ON pmx.[ProductDescriptionID] = pd.[ProductDescriptionID];

Tables Used in View


Table Catalog

Table Schema

Table Name

AdventureWorks

Production

Product

AdventureWorks

Production

ProductDescription

AdventureWorks

Production

ProductModel

AdventureWorks

Production

ProductModelProductDescriptionCulture

Dependent Objects
Dependent Obj
Product

Dependent Obj Type


USER_TABLE

Dependent Obj

Dependent Obj Type

ProductDescription

USER_TABLE

ProductModel

USER_TABLE

ProductModelProductDescriptionCulture

USER_TABLE

vProductModelCatalogDescription
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

BikeFrame

nvarchar

-1

YES

Color

nvarchar

256

YES

Copyright

nvarchar

30

YES

Crankset

nvarchar

256

YES

MaintenanceDescription

nvarchar

256

YES

Manufacturer

nvarchar

-1

YES

Material

nvarchar

256

YES

ModifiedDate

datetime

Name

nvarchar

50

NO

NoOfYears

nvarchar

256

YES

Pedal

nvarchar

256

YES

PictureAngle

nvarchar

256

YES

PictureSize

nvarchar

256

YES

ProductLine

nvarchar

256

YES

ProductModelID

int

ProductPhotoID

nvarchar

NO

NO
256

YES

Description

Column Name

Data Type

Column
Default

Length

Is Nullable

ProductURL

nvarchar

256

YES

RiderExperience

nvarchar

1024

YES

rowguid

uniqueidentifier

Saddle

nvarchar

256

YES

Style

nvarchar

256

YES

Summary

nvarchar

-1

YES

WarrantyDescription

nvarchar

256

YES

WarrantyPeriod

nvarchar

256

YES

Wheel

nvarchar

256

YES

View Definition

NO

Description

View Definition
CREATE VIEW [Production].[vProductModelCatalogDescription]
AS
SELECT
[ProductModelID]
,[Name]
,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/ProductModelDescription";
declare namespace html="http://www.w3.org/1999/xhtml";
(/p1:ProductDescription/p1:Summary/html:p)[1]', 'nvarchar(max)') AS [Summary]
,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/ProductModelDescription";
(/p1:ProductDescription/p1:Manufacturer/p1:Name)[1]', 'nvarchar(max)') AS [Manufacturer]
,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/ProductModelDescription";
(/p1:ProductDescription/p1:Manufacturer/p1:Copyright)[1]', 'nvarchar(30)') AS [Copyright]
,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/ProductModelDescription";
(/p1:ProductDescription/p1:Manufacturer/p1:ProductURL)[1]', 'nvarchar(256)') AS [ProductURL]
,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/ProductModelDescription";
declare namespace wm="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain";
(/p1:ProductDescription/p1:Features/wm:Warranty/wm:WarrantyPeriod)[1]', 'nvarchar(256)') AS [WarrantyPeriod]
,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/ProductModelDescription";
declare namespace wm="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain";
(/p1:ProductDescription/p1:Features/wm:Warranty/wm:Description)[1]', 'nvarchar(256)') AS [WarrantyDescription]
,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/ProductModelDescription";
declare namespace wm="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain";
(/p1:ProductDescription/p1:Features/wm:Maintenance/wm:NoOfYears)[1]', 'nvarchar(256)') AS [NoOfYears]
,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/ProductModelDescription";
declare namespace wm="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain";
(/p1:ProductDescription/p1:Features/wm:Maintenance/wm:Description)[1]', 'nvarchar(256)') AS [MaintenanceDescription]
,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/ProductModelDescription";
declare namespace wf="http://www.adventure-works.com/schemas/OtherFeatures";
(/p1:ProductDescription/p1:Features/wf:wheel)[1]', 'nvarchar(256)') AS [Wheel]
,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/ProductModelDescription";

View Definition
declare namespace wf="http://www.adventure-works.com/schemas/OtherFeatures";
(/p1:ProductDescription/p1:Features/wf:saddle)[1]', 'nvarchar(256)') AS [Saddle]
,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/ProductModelDescription";
declare namespace wf="http://www.adventure-works.com/schemas/OtherFeatures";
(/p1:ProductDescription/p1:Features/wf:pedal)[1]', 'nvarchar(256)') AS [Pedal]
,[CatalogDescription].value(N'declare namespace p1="http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/ProductModelDescription";
declare namespace wf="http://www.adventure-works.com/schemas/OtherFeatures";
(/p1:ProductDescription/p1:Features/wf:BikeFrame)[1]', 'nvarchar(max)') AS [Bik

Tables Used in View


Table Catalog

Table Schema

AdventureWorks

Table Name

Production

ProductModel

Dependent Objects
Dependent Obj
ProductModel

Dependent Obj Type


USER_TABLE

vProductModelInstructions
Column Details
Column Name

Data Type

Instructions

nvarchar

LaborHours

decimal

Column
Default

Length
-1

Is Nullable
YES
YES

Description

Column Name

Data Type

Column
Default

Length

Is Nullable

LocationID

int

YES

LotSize

int

YES

MachineHours

decimal

YES

ModifiedDate

datetime

NO

Name

nvarchar

ProductModelID

int

NO

rowguid

uniqueidentifier

NO

SetupHours

decimal

YES

Step

nvarchar

View Definition

50

1024

NO

YES

Description

View Definition
CREATE VIEW [Production].[vProductModelInstructions]
AS
SELECT
[ProductModelID]
,[Name]
,[Instructions].value(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/ProductModelManuInstructions";
(/root/text())[1]', 'nvarchar(max)') AS [Instructions]
,[MfgInstructions].ref.value('@LocationID[1]', 'int') AS [LocationID]
,[MfgInstructions].ref.value('@SetupHours[1]', 'decimal(9, 4)') AS [SetupHours]
,[MfgInstructions].ref.value('@MachineHours[1]', 'decimal(9, 4)') AS [MachineHours]
,[MfgInstructions].ref.value('@LaborHours[1]', 'decimal(9, 4)') AS [LaborHours]
,[MfgInstructions].ref.value('@LotSize[1]', 'int') AS [LotSize]
,[Steps].ref.value('string(.)[1]', 'nvarchar(1024)') AS [Step]
,[rowguid]
,[ModifiedDate]
FROM [Production].[ProductModel]
CROSS APPLY [Instructions].nodes(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/ProductModelManuInstructions";
/root/Location') MfgInstructions(ref)
CROSS APPLY [MfgInstructions].ref.nodes('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/ProductModelManuInstructions";
step') Steps(ref);

Tables Used in View


Table Catalog
AdventureWorks

Dependent Objects

Table Schema
Production

Table Name
ProductModel

Dependent Obj
ProductModel

Dependent Obj Type


USER_TABLE

vVendor
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

AddressLine1

nvarchar

60

NO

AddressLine2

nvarchar

60

YES

City

nvarchar

30

NO

ContactType

nvarchar

50

NO

CountryRegionName

nvarchar

50

NO

EmailAddress

nvarchar

50

YES

EmailPromotion

int

FirstName

nvarchar

50

NO

LastName

nvarchar

50

NO

MiddleName

nvarchar

50

YES

Name

nvarchar

50

NO

Phone

nvarchar

25

YES

PostalCode

nvarchar

15

NO

StateProvinceName

nvarchar

50

NO

Suffix

nvarchar

10

YES

Title

nvarchar

YES

VendorID

int

NO

NO

Description

View Definition
View Definition
CREATE VIEW [Purchasing].[vVendor] AS
SELECT
v.[VendorID]
,v.[Name]
,ct.[Name] AS [ContactType]
,c.[Title]
,c.[FirstName]
,c.[MiddleName]
,c.[LastName]
,c.[Suffix]
,c.[Phone]
,c.[EmailAddress]
,c.[EmailPromotion]
,a.[AddressLine1]
,a.[AddressLine2]
,a.[City]
,[StateProvinceName] = sp.[Name]
,a.[PostalCode]
,[CountryRegionName] = cr.[Name]
FROM [Purchasing].[Vendor] v
INNER JOIN [Purchasing].[VendorContact] vc
ON vc.[VendorID] = v.[VendorID]
INNER JOIN [Person].[Contact] c
ON c.[ContactID] = vc.[ContactID]
INNER JOIN [Person].[ContactType] ct
ON vc.[ContactTypeID] = ct.[ContactTypeID]
INNER JOIN [Purchasing].[VendorAddress] va
ON va.[VendorID] = v.[VendorID]
INNER JOIN [Person].[Address] a
ON a.[AddressID] = va.[AddressID]
INNER JOIN [Person].[StateProvince] sp
ON sp.[StateProvinceID] = a.[StateProvinceID]
INNER JOIN [Person].[CountryRegion] cr
ON cr.[CountryRegionCode] = sp.[CountryRegionCode];

Tables Used in View


Table Catalog

Table Schema

Table Name

AdventureWorks

Person

Address

AdventureWorks

Person

Contact

AdventureWorks

Person

ContactType

AdventureWorks

Person

CountryRegion

AdventureWorks

Person

StateProvince

AdventureWorks

Purchasing

Vendor

AdventureWorks

Purchasing

VendorAddress

AdventureWorks

Purchasing

VendorContact

Dependent Objects
Dependent Obj

Dependent Obj Type

Address

USER_TABLE

Contact

USER_TABLE

ContactType

USER_TABLE

CountryRegion

USER_TABLE

StateProvince

USER_TABLE

Vendor

USER_TABLE

VendorAddress

USER_TABLE

VendorContact

USER_TABLE

vIndividualCustomer
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

AddressLine1

nvarchar

60

NO

AddressLine2

nvarchar

60

YES

AddressType

nvarchar

50

NO

City

nvarchar

30

NO

CountryRegionName

nvarchar

50

NO

CustomerID

int

Demographics

xml

-1

YES

EmailAddress

nvarchar

50

YES

EmailPromotion

int

FirstName

nvarchar

50

NO

LastName

nvarchar

50

NO

MiddleName

nvarchar

50

YES

Phone

nvarchar

25

YES

PostalCode

nvarchar

15

NO

StateProvinceName

nvarchar

50

NO

Suffix

nvarchar

10

YES

Title

nvarchar

YES

NO

NO

Description

View Definition
View Definition
CREATE VIEW [Sales].[vIndividualCustomer]
AS
SELECT
i.[CustomerID]
,c.[Title]
,c.[FirstName]
,c.[MiddleName]
,c.[LastName]
,c.[Suffix]
,c.[Phone]
,c.[EmailAddress]
,c.[EmailPromotion]
,at.[Name] AS [AddressType]
,a.[AddressLine1]
,a.[AddressLine2]
,a.[City]
,[StateProvinceName] = sp.[Name]
,a.[PostalCode]
,[CountryRegionName] = cr.[Name]
,i.[Demographics]
FROM [Sales].[Individual] i
INNER JOIN [Person].[Contact] c
ON c.[ContactID] = i.[ContactID]
INNER JOIN [Sales].[CustomerAddress] ca
ON ca.[CustomerID] = i.[CustomerID]
INNER JOIN [Person].[Address] a
ON a.[AddressID] = ca.[AddressID]
INNER JOIN [Person].[StateProvince] sp
ON sp.[StateProvinceID] = a.[StateProvinceID]
INNER JOIN [Person].[CountryRegion] cr
ON cr.[CountryRegionCode] = sp.[CountryRegionCode]
INNER JOIN [Person].[AddressType] at
ON ca.[AddressTypeID] = at.[AddressTypeID]
WHERE i.[CustomerID] IN (SELECT [Sales].[Customer].[CustomerID]
FROM [Sales].[Customer] WHERE UPPER([Sales].[Customer].[CustomerType]) = 'I');

Tables Used in View


Table Catalog

Table Schema

Table Name

AdventureWorks

Person

Address

AdventureWorks

Person

AddressType

AdventureWorks

Person

Contact

AdventureWorks

Person

CountryRegion

AdventureWorks

Person

StateProvince

AdventureWorks

Sales

Customer

AdventureWorks

Sales

CustomerAddress

AdventureWorks

Sales

Individual

Dependent Objects
Dependent Obj

Dependent Obj Type

Address

USER_TABLE

AddressType

USER_TABLE

Contact

USER_TABLE

CountryRegion

USER_TABLE

Customer

USER_TABLE

CustomerAddress

USER_TABLE

Individual

USER_TABLE

StateProvince

USER_TABLE

vIndividualDemographics
Column Details

Column Name

Data Type

Column
Default

Length

Is Nullable

BirthDate

datetime

YES

CustomerID

int

NO

DateFirstPurchase

datetime

YES

Education

nvarchar

30

YES

Gender

nvarchar

YES

HomeOwnerFlag

bit

MaritalStatus

nvarchar

NumberCarsOwned

int

YES

NumberChildrenAtHome

int

YES

Occupation

nvarchar

TotalChildren

int

YES

TotalPurchaseYTD

money

YES

YearlyIncome

nvarchar

View Definition

YES
1

30

30

YES

YES

YES

Description

View Definition
CREATE VIEW [Sales].[vIndividualDemographics]
AS
SELECT
i.[CustomerID]
,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/IndividualSurvey";
TotalPurchaseYTD[1]', 'money') AS [TotalPurchaseYTD]
,CONVERT(datetime, REPLACE([IndividualSurvey].[ref].[value](N'declare default element namespace
"http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey";
DateFirstPurchase[1]', 'nvarchar(20)') ,'Z', ''), 101) AS [DateFirstPurchase]
,CONVERT(datetime, REPLACE([IndividualSurvey].[ref].[value](N'declare default element namespace
"http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey";
BirthDate[1]', 'nvarchar(20)') ,'Z', ''), 101) AS [BirthDate]
,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/IndividualSurvey";
MaritalStatus[1]', 'nvarchar(1)') AS [MaritalStatus]
,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/IndividualSurvey";
YearlyIncome[1]', 'nvarchar(30)') AS [YearlyIncome]
,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/IndividualSurvey";
Gender[1]', 'nvarchar(1)') AS [Gender]
,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/IndividualSurvey";
TotalChildren[1]', 'integer') AS [TotalChildren]
,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/IndividualSurvey";
NumberChildrenAtHome[1]', 'integer') AS [NumberChildrenAtHome]
,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/IndividualSurvey";
Education[1]', 'nvarchar(30)') AS [Education]
,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/IndividualSurvey";
Occupation[1]', 'nvarchar(30)') AS [Occupation]
,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/IndividualSurvey";
HomeOwnerFlag[1]', 'bit') AS [HomeOwnerFlag]
,[IndividualSurvey].[ref].[value](N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/IndividualSurvey";
NumberCarsOwned[1]', 'integer') AS [NumberCarsOwned]

View Definition
FROM [Sales].[Individual] i
CROSS APPLY i.[Demographics].nodes(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/IndividualSurvey";
/IndividualSurvey') AS [IndividualSurvey](ref)
WHERE [Demographics] IS NOT NULL;

Tables Used in View


Table Catalog

Table Schema

AdventureWorks

Table Name

Sales

Individual

Dependent Objects
Dependent Obj
Individual

Dependent Obj Type


USER_TABLE

vSalesPerson
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

AddressLine1

nvarchar

60

NO

AddressLine2

nvarchar

60

YES

City

nvarchar

30

NO

CountryRegionName

nvarchar

50

NO

EmailAddress

nvarchar

50

YES

Description

Column Name

Data Type

Column
Default

Length

Is Nullable

EmailPromotion

int

FirstName

nvarchar

50

NO

JobTitle

nvarchar

50

NO

LastName

nvarchar

50

NO

MiddleName

nvarchar

50

YES

Phone

nvarchar

25

YES

PostalCode

nvarchar

15

NO

SalesLastYear

money

NO

SalesPersonID

int

NO

SalesQuota

money

YES

SalesYTD

money

NO

StateProvinceName

nvarchar

50

NO

Suffix

nvarchar

10

YES

TerritoryGroup

nvarchar

50

YES

TerritoryName

nvarchar

50

YES

Title

nvarchar

YES

View Definition

NO

Description

View Definition
CREATE VIEW [Sales].[vSalesPerson]
AS
SELECT
s.[SalesPersonID]
,c.[Title]
,c.[FirstName]
,c.[MiddleName]
,c.[LastName]
,c.[Suffix]
,[JobTitle] = e.[Title]
,c.[Phone]
,c.[EmailAddress]
,c.[EmailPromotion]
,a.[AddressLine1]
,a.[AddressLine2]
,a.[City]
,[StateProvinceName] = sp.[Name]
,a.[PostalCode]
,[CountryRegionName] = cr.[Name]
,[TerritoryName] = st.[Name]
,[TerritoryGroup] = st.[Group]
,s.[SalesQuota]
,s.[SalesYTD]
,s.[SalesLastYear]
FROM [Sales].[SalesPerson] s
INNER JOIN [HumanResources].[Employee] e
ON e.[EmployeeID] = s.[SalesPersonID]
LEFT OUTER JOIN [Sales].[SalesTerritory] st
ON st.[TerritoryID] = s.[TerritoryID]
INNER JOIN [Person].[Contact] c
ON c.[ContactID] = e.[ContactID]
INNER JOIN [HumanResources].[EmployeeAddress] ea
ON e.[EmployeeID] = ea.[EmployeeID]
INNER JOIN [Person].[Address] a
ON ea.[AddressID] = a.[AddressID]
INNER JOIN [Person].[StateProvince] sp
ON sp.[StateProvinceID] = a.[StateProvinceID]
INNER JOIN [Person].[CountryRegion] cr
ON cr.[CountryRegionCode] = sp.[CountryRegionCode];

Tables Used in View


Table Catalog

Table Schema

Table Name

AdventureWorks

HumanResources

Employee

AdventureWorks

HumanResources

EmployeeAddress

AdventureWorks

Person

Address

AdventureWorks

Person

Contact

AdventureWorks

Person

CountryRegion

AdventureWorks

Person

StateProvince

AdventureWorks

Sales

SalesPerson

AdventureWorks

Sales

SalesTerritory

Dependent Objects
Dependent Obj

Dependent Obj Type

Address

USER_TABLE

Contact

USER_TABLE

CountryRegion

USER_TABLE

Employee

USER_TABLE

EmployeeAddress

USER_TABLE

SalesPerson

USER_TABLE

SalesTerritory

USER_TABLE

StateProvince

USER_TABLE

vSalesPersonSalesByFiscalYears
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

2002

money

YES

2003

money

YES

2004

money

YES

FullName

nvarchar

SalesPersonID

int

SalesTerritory

nvarchar

50

NO

Title

nvarchar

50

NO

View Definition

152

YES
YES

Description

View Definition
CREATE VIEW [Sales].[vSalesPersonSalesByFiscalYears]
AS
SELECT
pvt.[SalesPersonID]
,pvt.[FullName]
,pvt.[Title]
,pvt.[SalesTerritory]
,pvt.[2002]
,pvt.[2003]
,pvt.[2004]
FROM (SELECT
soh.[SalesPersonID]
,c.[FirstName] + ' ' + COALESCE(c.[MiddleName], '') + ' ' + c.[LastName] AS [FullName]
,e.[Title]
,st.[Name] AS [SalesTerritory]
,soh.[SubTotal]
,YEAR(DATEADD(m, 6, soh.[OrderDate])) AS [FiscalYear]
FROM [Sales].[SalesPerson] sp
INNER JOIN [Sales].[SalesOrderHeader] soh
ON sp.[SalesPersonID] = soh.[SalesPersonID]
INNER JOIN [Sales].[SalesTerritory] st
ON sp.[TerritoryID] = st.[TerritoryID]
INNER JOIN [HumanResources].[Employee] e
ON soh.[SalesPersonID] = e.[EmployeeID]
INNER JOIN [Person].[Contact] c
ON e.[ContactID] = c.ContactID
) AS soh
PIVOT
(
SUM([SubTotal])
FOR [FiscalYear]
IN ([2002], [2003], [2004])
) AS pvt;

Tables Used in View

Table Catalog

Table Schema

Table Name

AdventureWorks

HumanResources

Employee

AdventureWorks

Person

Contact

AdventureWorks

Sales

SalesOrderHeader

AdventureWorks

Sales

SalesPerson

AdventureWorks

Sales

SalesTerritory

Dependent Objects
Dependent Obj

Dependent Obj Type

Contact

USER_TABLE

Employee

USER_TABLE

SalesOrderHeader

USER_TABLE

SalesPerson

USER_TABLE

SalesTerritory

USER_TABLE

vStoreWithDemographics
Column Details
Column Name

Data Type

Column
Default

Length

Is Nullable

AddressLine1

nvarchar

60

NO

AddressLine2

nvarchar

60

YES

AddressType

nvarchar

50

NO

AnnualRevenue

money

YES

AnnualSales

money

YES

Description

Column Name

Data Type

Column
Default

Length

Is Nullable

BankName

nvarchar

50

YES

Brands

nvarchar

30

YES

BusinessType

nvarchar

YES

City

nvarchar

30

NO

ContactType

nvarchar

50

NO

CountryRegionName

nvarchar

50

NO

CustomerID

int

EmailAddress

nvarchar

EmailPromotion

int

FirstName

nvarchar

50

NO

Internet

nvarchar

30

YES

LastName

nvarchar

50

NO

MiddleName

nvarchar

50

YES

Name

nvarchar

50

NO

NumberEmployees

int

Phone

nvarchar

25

YES

PostalCode

nvarchar

15

NO

Specialty

nvarchar

50

YES

SquareFeet

int

StateProvinceName

nvarchar

50

NO

Suffix

nvarchar

10

YES

Title

nvarchar

YES

YearOpened

int

NO
50

YES
NO

YES

YES

YES

Description

View Definition

View Definition
CREATE VIEW [Sales].[vStoreWithDemographics] AS
SELECT
s.[CustomerID]
,s.[Name]
,ct.[Name] AS [ContactType]
,c.[Title]
,c.[FirstName]
,c.[MiddleName]
,c.[LastName]
,c.[Suffix]
,c.[Phone]
,c.[EmailAddress]
,c.[EmailPromotion]
,at.[Name] AS [AddressType]
,a.[AddressLine1]
,a.[AddressLine2]
,a.[City]
,sp.[Name] AS [StateProvinceName]
,a.[PostalCode]
,cr.[Name] AS [CountryRegionName]
,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/StoreSurvey";
(/StoreSurvey/AnnualSales)[1]', 'money') AS [AnnualSales]
,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/StoreSurvey";
(/StoreSurvey/AnnualRevenue)[1]', 'money') AS [AnnualRevenue]
,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/StoreSurvey";
(/StoreSurvey/BankName)[1]', 'nvarchar(50)') AS [BankName]
,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/StoreSurvey";
(/StoreSurvey/BusinessType)[1]', 'nvarchar(5)') AS [BusinessType]
,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/StoreSurvey";
(/StoreSurvey/YearOpened)[1]', 'integer') AS [YearOpened]
,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/StoreSurvey";
(/StoreSurvey/Specialty)[1]', 'nvarchar(50)') AS [Specialty]
,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/StoreSurvey";

View Definition
(/StoreSurvey/SquareFeet)[1]', 'integer') AS [SquareFeet]
,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/StoreSurvey";
(/StoreSurvey/Brands)[1]', 'nvarchar(30)') AS [Brands]
,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/StoreSurvey";
(/StoreSurvey/Internet)[1]', 'nvarchar(30)') AS [Internet]
,s.[Demographics].value('declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/StoreSurvey";
(/StoreSurvey/NumberEmployees)[1]', 'integer') AS [NumberEmployees]
FROM [Sales].[Store] s
INNER JOIN [Sales].[StoreContact] sc
ON sc.[CustomerID] = s.[CustomerID]
INNER JOIN [Person].[Contact] c
ON c.[ContactID] = sc.[ContactID]
INNER JOIN [Person].[ContactType] ct
ON sc.[ContactTypeID] = ct.[ContactTypeID]
INNER JOIN [Sales].[CustomerAddress] ca
ON ca.[CustomerID] = s.[CustomerID]
INNER JOIN [Person].[Address] a
ON a.[AddressID] = ca.[AddressID]
INNER JOIN [Person].[StateProvince] sp
ON sp.[StateProvinceID] = a.[StateProvinceID]
INNER JOIN [Person].[CountryRegion] cr
ON cr.[CountryRegionCode] = sp.[CountryRegionCode]
INNER JOIN [Person].[AddressType] at
ON ca.[AddressTypeID] = at.[AddressTypeID]
WHERE s.[CustomerID] IN (SELECT [Sales].[Customer].[CustomerID]
FROM [Sales].[Customer] WHERE UPPER([Sales].[Customer].[CustomerType]) = 'S');

Tables Used in View


Table Catalog

Table Schema

Table Name

AdventureWorks

Person

Address

AdventureWorks

Person

AddressType

AdventureWorks

Person

Contact

Table Catalog

Table Schema

Table Name

AdventureWorks

Person

ContactType

AdventureWorks

Person

CountryRegion

AdventureWorks

Person

StateProvince

AdventureWorks

Sales

Customer

AdventureWorks

Sales

CustomerAddress

AdventureWorks

Sales

Store

AdventureWorks

Sales

StoreContact

Dependent Objects
Dependent Obj

Dependent Obj Type

Address

USER_TABLE

AddressType

USER_TABLE

Contact

USER_TABLE

ContactType

USER_TABLE

CountryRegion

USER_TABLE

Customer

USER_TABLE

CustomerAddress

USER_TABLE

StateProvince

USER_TABLE

Store

USER_TABLE

StoreContact

USER_TABLE

Procedures
Procedure Name

Procedure Schema

uspPrintError

dbo

uspLogError

dbo

uspGetBillOfMaterials

dbo

uspGetEmployeeManagers

dbo

uspGetManagerEmployees

dbo

uspGetWhereUsedProductID

dbo

uspUpdateEmployeeHireInfo

HumanResources

uspUpdateEmployeeLogin

HumanResources

uspUpdateEmployeePersonalInfo

HumanResources

uspPrintError
Definition

Routine Definition
-- uspPrintError prints error information about the error that caused
-- execution to jump to the CATCH block of a TRY...CATCH construct.
-- Should be executed from within the scope of a CATCH block otherwise
-- it will return without printing any error information.
CREATE PROCEDURE [dbo].[uspPrintError]
AS
BEGIN
SET NOCOUNT ON;
-- Print error information.
PRINT 'Error ' + CONVERT(varchar(50), ERROR_NUMBER()) +
', Severity ' + CONVERT(varchar(5), ERROR_SEVERITY()) +
', State ' + CONVERT(varchar(5), ERROR_STATE()) +
', Procedure ' + ISNULL(ERROR_PROCEDURE(), '-') +
', Line ' + CONVERT(varchar(5), ERROR_LINE());
PRINT ERROR_MESSAGE();
END;

Dependent Objects
Dependent Obj

Dependent Obj Type

uspLogError

SQL_STORED_PROCEDURE

dVendor

SQL_TRIGGER

iduSalesOrderDetail

SQL_TRIGGER

iPurchaseOrderDetail

SQL_TRIGGER

iStore

SQL_TRIGGER

iWorkOrder

SQL_TRIGGER

uPurchaseOrderDetail

SQL_TRIGGER

uPurchaseOrderHeader

SQL_TRIGGER

uSalesOrderHeader

SQL_TRIGGER

Dependent Obj
uWorkOrder

uspLogError
Definition

Dependent Obj Type


SQL_TRIGGER

Routine Definition
-- uspLogError logs error information in the ErrorLog table about the
-- error that caused execution to jump to the CATCH block of a
-- TRY...CATCH construct. This should be executed from within the scope
-- of a CATCH block otherwise it will return without inserting error
-- information.
CREATE PROCEDURE [dbo].[uspLogError]
@ErrorLogID [int] = 0 OUTPUT -- contains the ErrorLogID of the row inserted
AS
-- by uspLogError in the ErrorLog table
BEGIN
SET NOCOUNT ON;
-- Output parameter value of 0 indicates that error
-- information was not logged
SET @ErrorLogID = 0;
BEGIN TRY
-- Return if there is no error information to log
IF ERROR_NUMBER() IS NULL
RETURN;
-- Return if inside an uncommittable transaction.
-- Data insertion/modification is not allowed when
-- a transaction is in an uncommittable state.
IF XACT_STATE() = -1
BEGIN
PRINT 'Cannot log error since the current transaction is in an uncommittable state. '
+ 'Rollback the transaction before executing uspLogError in order to successfully log error information.';
RETURN;
END
INSERT [dbo].[ErrorLog]
(
[UserName],
[ErrorNumber],
[ErrorSeverity],
[ErrorState],
[ErrorProcedure],
[ErrorLine],
[ErrorMessage]
)

Routine Definition
VALUES
(
CONVERT(sysname, CURRENT_USER),
ERROR_NUMBER(),
ERROR_SEVERITY(),
ERROR_STATE(),
ERROR_PROCEDURE(),
ERROR_LINE(),
ERROR_MESSAGE()
);
-- Pass back the ErrorLogID of the row inserted
SET @ErrorLogID = @@IDENTITY;
END TRY
BEGIN CATCH
PRINT 'An error occurred in stored procedure uspLogError: ';
EXECUTE [dbo].[uspPrintError];
RETURN -1;
END CATCH
END;

Dependent Objects
Dependent Obj

Dependent Obj Type

uspPrintError

SQL_STORED_PROCEDURE

uspUpdateEmployeeHireInfo

SQL_STORED_PROCEDURE

uspUpdateEmployeeLogin

SQL_STORED_PROCEDURE

uspUpdateEmployeePersonalInfo

SQL_STORED_PROCEDURE

dVendor

SQL_TRIGGER

iduSalesOrderDetail

SQL_TRIGGER

iPurchaseOrderDetail

SQL_TRIGGER

iStore

SQL_TRIGGER

Dependent Obj

Dependent Obj Type

iWorkOrder

SQL_TRIGGER

uPurchaseOrderDetail

SQL_TRIGGER

uPurchaseOrderHeader

SQL_TRIGGER

uSalesOrderHeader

SQL_TRIGGER

uWorkOrder

SQL_TRIGGER

ErrorLog

USER_TABLE

uspGetBillOfMaterials
Definition

Routine Definition
CREATE PROCEDURE [dbo].[uspGetBillOfMaterials]
@StartProductID [int],
@CheckDate [datetime]
AS
BEGIN
SET NOCOUNT ON;
-- Use recursive query to generate a multi-level Bill of Material (i.e. all level 1
-- components of a level 0 assembly, all level 2 components of a level 1 assembly)
-- The CheckDate eliminates any components that are no longer used in the product on this date.
WITH [BOM_cte]([ProductAssemblyID], [ComponentID], [ComponentDesc], [PerAssemblyQty], [StandardCost], [ListPrice], [BOMLevel],
[RecursionLevel]) -- CTE name and columns
AS (
SELECT b.[ProductAssemblyID], b.[ComponentID], p.[Name], b.[PerAssemblyQty], p.[StandardCost], p.[ListPrice], b.[BOMLevel], 0 -- Get
the initial list of components for the bike assembly
FROM [Production].[BillOfMaterials] b
INNER JOIN [Production].[Product] p
ON b.[ComponentID] = p.[ProductID]
WHERE b.[ProductAssemblyID] = @StartProductID
AND @CheckDate >= b.[StartDate]
AND @CheckDate <= ISNULL(b.[EndDate], @CheckDate)
UNION ALL
SELECT b.[ProductAssemblyID], b.[ComponentID], p.[Name], b.[PerAssemblyQty], p.[StandardCost], p.[ListPrice], b.[BOMLevel],
[RecursionLevel] + 1 -- Join recursive member to anchor
FROM [BOM_cte] cte
INNER JOIN [Production].[BillOfMaterials] b
ON b.[ProductAssemblyID] = cte.[ComponentID]
INNER JOIN [Production].[Product] p
ON b.[ComponentID] = p.[ProductID]
WHERE @CheckDate >= b.[StartDate]
AND @CheckDate <= ISNULL(b.[EndDate], @CheckDate)
)
-- Outer select from the CTE
SELECT b.[ProductAssemblyID], b.[ComponentID], b.[ComponentDesc], SUM(b.[PerAssemblyQty]) AS [TotalQuantity] , b.[StandardCost],
b.[ListPrice], b.[BOMLevel], b.[RecursionLevel]
FROM [BOM_cte] b
GROUP BY b.[ComponentID], b.[ComponentDesc], b.[ProductAssemblyID], b.[BOMLevel], b.[RecursionLevel], b.[StandardCost], b.[ListPrice]
ORDER BY b.[BOMLevel], b.[ProductAssemblyID], b.[ComponentID]
OPTION (MAXRECURSION 25)
END;

Dependent Objects
Dependent Obj

Dependent Obj Type

BillOfMaterials

USER_TABLE

Product

USER_TABLE

uspGetEmployeeManagers
Definition

Routine Definition
CREATE PROCEDURE [dbo].[uspGetEmployeeManagers]
@EmployeeID [int]
AS
BEGIN
SET NOCOUNT ON;
-- Use recursive query to list out all Employees required for a particular Manager
WITH [EMP_cte]([EmployeeID], [ManagerID], [FirstName], [LastName], [Title], [RecursionLevel]) -- CTE name and columns
AS (
SELECT e.[EmployeeID], e.[ManagerID], c.[FirstName], c.[LastName], e.[Title], 0 -- Get the initial Employee
FROM [HumanResources].[Employee] e
INNER JOIN [Person].[Contact] c
ON e.[ContactID] = c.[ContactID]
WHERE e.[EmployeeID] = @EmployeeID
UNION ALL
SELECT e.[EmployeeID], e.[ManagerID], c.[FirstName], c.[LastName], e.[Title], [RecursionLevel] + 1 -- Join recursive member to anchor
FROM [HumanResources].[Employee] e
INNER JOIN [EMP_cte]
ON e.[EmployeeID] = [EMP_cte].[ManagerID]
INNER JOIN [Person].[Contact] c
ON e.[ContactID] = c.[ContactID]
)
-- Join back to Employee to return the manager name
SELECT [EMP_cte].[RecursionLevel], [EMP_cte].[EmployeeID], [EMP_cte].[FirstName], [EMP_cte].[LastName],
[EMP_cte].[ManagerID], c.[FirstName] AS 'ManagerFirstName', c.[LastName] AS 'ManagerLastName' -- Outer select from the CTE
FROM [EMP_cte]
INNER JOIN [HumanResources].[Employee] e
ON [EMP_cte].[ManagerID] = e.[EmployeeID]
INNER JOIN [Person].[Contact] c
ON e.[ContactID] = c.[ContactID]
ORDER BY [RecursionLevel], [ManagerID], [EmployeeID]
OPTION (MAXRECURSION 25)
END;

Dependent Objects

Dependent Obj

Dependent Obj Type

Contact

USER_TABLE

Employee

USER_TABLE

uspGetManagerEmployees
Definition

Routine Definition
CREATE PROCEDURE [dbo].[uspGetManagerEmployees]
@ManagerID [int]
AS
BEGIN
SET NOCOUNT ON;
-- Use recursive query to list out all Employees required for a particular Manager
WITH [EMP_cte]([EmployeeID], [ManagerID], [FirstName], [LastName], [RecursionLevel]) -- CTE name and columns
AS (
SELECT e.[EmployeeID], e.[ManagerID], c.[FirstName], c.[LastName], 0 -- Get the initial list of Employees for Manager n
FROM [HumanResources].[Employee] e
INNER JOIN [Person].[Contact] c
ON e.[ContactID] = c.[ContactID]
WHERE [ManagerID] = @ManagerID
UNION ALL
SELECT e.[EmployeeID], e.[ManagerID], c.[FirstName], c.[LastName], [RecursionLevel] + 1 -- Join recursive member to anchor
FROM [HumanResources].[Employee] e
INNER JOIN [EMP_cte]
ON e.[ManagerID] = [EMP_cte].[EmployeeID]
INNER JOIN [Person].[Contact] c
ON e.[ContactID] = c.[ContactID]
)
-- Join back to Employee to return the manager name
SELECT [EMP_cte].[RecursionLevel], [EMP_cte].[ManagerID], c.[FirstName] AS 'ManagerFirstName', c.[LastName] AS 'ManagerLastName',
[EMP_cte].[EmployeeID], [EMP_cte].[FirstName], [EMP_cte].[LastName] -- Outer select from the CTE
FROM [EMP_cte]
INNER JOIN [HumanResources].[Employee] e
ON [EMP_cte].[ManagerID] = e.[EmployeeID]
INNER JOIN [Person].[Contact] c
ON e.[ContactID] = c.[ContactID]
ORDER BY [RecursionLevel], [ManagerID], [EmployeeID]
OPTION (MAXRECURSION 25)
END;

Dependent Objects

Dependent Obj

Dependent Obj Type

Contact

USER_TABLE

Employee

USER_TABLE

uspGetWhereUsedProductID
Definition

Routine Definition
CREATE PROCEDURE [dbo].[uspGetWhereUsedProductID]
@StartProductID [int],
@CheckDate [datetime]
AS
BEGIN
SET NOCOUNT ON;
--Use recursive query to generate a multi-level Bill of Material (i.e. all level 1 components of a level 0 assembly, all level 2 components of a
level 1 assembly)
WITH [BOM_cte]([ProductAssemblyID], [ComponentID], [ComponentDesc], [PerAssemblyQty], [StandardCost], [ListPrice], [BOMLevel],
[RecursionLevel]) -- CTE name and columns
AS (
SELECT b.[ProductAssemblyID], b.[ComponentID], p.[Name], b.[PerAssemblyQty], p.[StandardCost], p.[ListPrice], b.[BOMLevel], 0 -- Get
the initial list of components for the bike assembly
FROM [Production].[BillOfMaterials] b
INNER JOIN [Production].[Product] p
ON b.[ProductAssemblyID] = p.[ProductID]
WHERE b.[ComponentID] = @StartProductID
AND @CheckDate >= b.[StartDate]
AND @CheckDate <= ISNULL(b.[EndDate], @CheckDate)
UNION ALL
SELECT b.[ProductAssemblyID], b.[ComponentID], p.[Name], b.[PerAssemblyQty], p.[StandardCost], p.[ListPrice], b.[BOMLevel],
[RecursionLevel] + 1 -- Join recursive member to anchor
FROM [BOM_cte] cte
INNER JOIN [Production].[BillOfMaterials] b
ON cte.[ProductAssemblyID] = b.[ComponentID]
INNER JOIN [Production].[Product] p
ON b.[ProductAssemblyID] = p.[ProductID]
WHERE @CheckDate >= b.[StartDate]
AND @CheckDate <= ISNULL(b.[EndDate], @CheckDate)
)
-- Outer select from the CTE
SELECT b.[ProductAssemblyID], b.[ComponentID], b.[ComponentDesc], SUM(b.[PerAssemblyQty]) AS [TotalQuantity] , b.[StandardCost],
b.[ListPrice], b.[BOMLevel], b.[RecursionLevel]
FROM [BOM_cte] b
GROUP BY b.[ComponentID], b.[ComponentDesc], b.[ProductAssemblyID], b.[BOMLevel], b.[RecursionLevel], b.[StandardCost], b.[ListPrice]
ORDER BY b.[BOMLevel], b.[ProductAssemblyID], b.[ComponentID]
OPTION (MAXRECURSION 25)
END;

Dependent Objects
Dependent Obj

Dependent Obj Type

BillOfMaterials

USER_TABLE

Product

USER_TABLE

uspUpdateEmployeeHireInfo
Definition

Routine Definition
CREATE PROCEDURE [HumanResources].[uspUpdateEmployeeHireInfo]
@EmployeeID [int],
@Title [nvarchar](50),
@HireDate [datetime],
@RateChangeDate [datetime],
@Rate [money],
@PayFrequency [tinyint],
@CurrentFlag [dbo].[Flag]
WITH EXECUTE AS CALLER
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY
BEGIN TRANSACTION;
UPDATE [HumanResources].[Employee]
SET [Title] = @Title
,[HireDate] = @HireDate
,[CurrentFlag] = @CurrentFlag
WHERE [EmployeeID] = @EmployeeID;
INSERT INTO [HumanResources].[EmployeePayHistory]
([EmployeeID]
,[RateChangeDate]
,[Rate]
,[PayFrequency])
VALUES (@EmployeeID, @RateChangeDate, @Rate, @PayFrequency);
COMMIT TRANSACTION;
END TRY
BEGIN CATCH
-- Rollback any active or uncommittable transactions before
-- inserting information in the ErrorLog
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRANSACTION;
END
EXECUTE [dbo].[uspLogError];

Routine Definition
END CATCH;
END;

Dependent Objects
Dependent Obj

Dependent Obj Type

uspLogError

SQL_STORED_PROCEDURE

Employee

USER_TABLE

EmployeePayHistory

USER_TABLE

uspUpdateEmployeeLogin
Definition

Routine Definition
CREATE PROCEDURE [HumanResources].[uspUpdateEmployeeLogin]
@EmployeeID [int],
@ManagerID [int],
@LoginID [nvarchar](256),
@Title [nvarchar](50),
@HireDate [datetime],
@CurrentFlag [dbo].[Flag]
WITH EXECUTE AS CALLER
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY
UPDATE [HumanResources].[Employee]
SET [ManagerID] = @ManagerID
,[LoginID] = @LoginID
,[Title] = @Title
,[HireDate] = @HireDate
,[CurrentFlag] = @CurrentFlag
WHERE [EmployeeID] = @EmployeeID;
END TRY
BEGIN CATCH
EXECUTE [dbo].[uspLogError];
END CATCH;
END;

Dependent Objects
Dependent Obj

Dependent Obj Type

uspLogError

SQL_STORED_PROCEDURE

Employee

USER_TABLE

uspUpdateEmployeePersonalInfo
Definition
Routine Definition
CREATE PROCEDURE [HumanResources].[uspUpdateEmployeePersonalInfo]
@EmployeeID [int],
@NationalIDNumber [nvarchar](15),
@BirthDate [datetime],
@MaritalStatus [nchar](1),
@Gender [nchar](1)
WITH EXECUTE AS CALLER
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY
UPDATE [HumanResources].[Employee]
SET [NationalIDNumber] = @NationalIDNumber
,[BirthDate] = @BirthDate
,[MaritalStatus] = @MaritalStatus
,[Gender] = @Gender
WHERE [EmployeeID] = @EmployeeID;
END TRY
BEGIN CATCH
EXECUTE [dbo].[uspLogError];
END CATCH;
END;

Dependent Objects
Dependent Obj

Dependent Obj Type

uspLogError

SQL_STORED_PROCEDURE

Employee

USER_TABLE

Functions
Function Name

Function Schema

ufnLeadingZeros

dbo

ufnGetAccountingStartDate

dbo

ufnGetAccountingEndDate

dbo

ufnGetContactInformation

dbo

ufnGetProductDealerPrice

dbo

ufnGetProductListPrice

dbo

ufnGetProductStandardCost

dbo

ufnGetStock

dbo

ufnGetDocumentStatusText

dbo

ufnGetPurchaseOrderStatusText

dbo

ufnGetSalesOrderStatusText

dbo

ufnLeadingZeros
Definition

Routine Definition
CREATE FUNCTION [dbo].[ufnLeadingZeros](
@Value int
)
RETURNS varchar(8)
WITH SCHEMABINDING
AS
BEGIN
DECLARE @ReturnValue varchar(8);
SET @ReturnValue = CONVERT(varchar(8), @Value);
SET @ReturnValue = REPLICATE('0', 8 - DATALENGTH(@ReturnValue)) + @ReturnValue;
RETURN (@ReturnValue);
END;

Dependent Objects
Dependent Obj
Customer

Dependent Obj Type


USER_TABLE

ufnGetAccountingStartDate
Definition
Routine Definition
CREATE FUNCTION [dbo].[ufnGetAccountingStartDate]()
RETURNS [datetime]
AS
BEGIN
RETURN CONVERT(datetime, '20030701', 112);
END;

Dependent Objects
---None---

ufnGetAccountingEndDate
Definition
Routine Definition
CREATE FUNCTION [dbo].[ufnGetAccountingEndDate]()
RETURNS [datetime]
AS
BEGIN
RETURN DATEADD(millisecond, -2, CONVERT(datetime, '20040701', 112));
END;

Dependent Objects
---None---

ufnGetContactInformation
Definition

Routine Definition
CREATE FUNCTION [dbo].[ufnGetContactInformation](@ContactID int)
RETURNS @retContactInformation TABLE
(
-- Columns returned by the function
[ContactID] int PRIMARY KEY NOT NULL,
[FirstName] [nvarchar](50) NULL,
[LastName] [nvarchar](50) NULL,
[JobTitle] [nvarchar](50) NULL,
[ContactType] [nvarchar](50) NULL
)
AS
-- Returns the first name, last name, job title and contact type for the specified contact.
BEGIN
DECLARE
@FirstName [nvarchar](50),
@LastName [nvarchar](50),
@JobTitle [nvarchar](50),
@ContactType [nvarchar](50);
-- Get common contact information
SELECT
@ContactID = ContactID,
@FirstName = FirstName,
@LastName = LastName
FROM [Person].[Contact]
WHERE [ContactID] = @ContactID;
SET @JobTitle =
CASE
-- Check for employee
WHEN EXISTS(SELECT * FROM [HumanResources].[Employee] e
WHERE e.[ContactID] = @ContactID)
THEN (SELECT [Title]
FROM [HumanResources].[Employee]
WHERE [ContactID] = @ContactID)
-- Check for vendor
WHEN EXISTS(SELECT * FROM [Purchasing].[VendorContact] vc
INNER JOIN [Person].[ContactType] ct
ON vc.[ContactTypeID] = ct.[ContactTypeID]

Routine Definition
WHERE vc.[ContactID] = @ContactID)
THEN (SELECT ct.[Name]
FROM [Purchasing].[VendorContact] vc
INNER JOIN [Person].[ContactType] ct
ON vc.[ContactTypeID] = ct.[ContactTypeID]
WHERE vc.[ContactID] = @ContactID)
-- Check for store
WHEN EXISTS(SELECT * FROM [Sales].[StoreContact] sc
INNER JOIN [Person].[ContactType] ct
ON sc.[ContactTypeID] = ct.[ContactTypeID]
WHERE sc.[ContactID] = @ContactID)
THEN (SELECT ct.[Name]
FROM [Sales].[StoreContact] sc
INNER JOIN [Person].[ContactType] ct
ON sc.[ContactTypeID] = ct.[ContactTypeID]
WHERE [ContactID] = @ContactID)
ELSE NULL
END;
SET @ContactType =
CASE
-- Check for employee
WHEN EXISTS(SELECT * FROM [HumanResources].[Employee] e
WHERE e.[ContactID] = @ContactID)
THEN 'Employee'
-- Check for vendor
WHEN EXISTS(SELECT * FROM [Purchasing].[VendorContact] vc
INNER JOIN [Person].[ContactType] ct
ON vc.[ContactTypeID] = ct.[ContactTypeID]
WHERE vc.[ContactID] = @ContactID)
THEN 'Vendor Contact'
-- Check for store
WHEN EXISTS(SELECT * FROM [Sales].[StoreContact] sc
INNER JOIN [Person].[ContactType] ct
ON sc.[ContactTypeID] = ct.[ContactTypeID]
WHERE sc.[ContactID] = @ContactID)
THEN 'Store Contact'

Routine Definition
-- Check for individual consumer
WHEN EXISTS(SELECT * FROM [Sales].[Individual] i
WHERE i.[ContactID] = @ContactID)
THEN 'Consumer'
END;
-- Return the information to the caller
IF @ContactID IS NOT NULL
BEGIN
INSERT @retContactInformation
SELECT @ContactID, @FirstName, @LastName, @JobTitle, @ContactType;
END;
RETURN;
END;

Dependent Objects
Dependent Obj

Dependent Obj Type

Contact

USER_TABLE

ContactType

USER_TABLE

Employee

USER_TABLE

Individual

USER_TABLE

StoreContact

USER_TABLE

VendorContact

USER_TABLE

ufnGetProductDealerPrice
Definition

Routine Definition
CREATE FUNCTION [dbo].[ufnGetProductDealerPrice](@ProductID [int], @OrderDate [datetime])
RETURNS [money]
AS
-- Returns the dealer price for the product on a specific date.
BEGIN
DECLARE @DealerPrice money;
DECLARE @DealerDiscount money;
SET @DealerDiscount = 0.60 -- 60% of list price
SELECT @DealerPrice = plph.[ListPrice] * @DealerDiscount
FROM [Production].[Product] p
INNER JOIN [Production].[ProductListPriceHistory] plph
ON p.[ProductID] = plph.[ProductID]
AND p.[ProductID] = @ProductID
AND @OrderDate BETWEEN plph.[StartDate] AND COALESCE(plph.[EndDate], CONVERT(datetime, '99991231', 112)); -- Make sure
we get all the prices!
RETURN @DealerPrice;
END;

Dependent Objects
Dependent Obj

Dependent Obj Type

Product

USER_TABLE

ProductListPriceHistory

USER_TABLE

ufnGetProductListPrice
Definition

Routine Definition
CREATE FUNCTION [dbo].[ufnGetProductListPrice](@ProductID [int], @OrderDate [datetime])
RETURNS [money]
AS
BEGIN
DECLARE @ListPrice money;
SELECT @ListPrice = plph.[ListPrice]
FROM [Production].[Product] p
INNER JOIN [Production].[ProductListPriceHistory] plph
ON p.[ProductID] = plph.[ProductID]
AND p.[ProductID] = @ProductID
AND @OrderDate BETWEEN plph.[StartDate] AND COALESCE(plph.[EndDate], CONVERT(datetime, '99991231', 112)); -- Make sure
we get all the prices!
RETURN @ListPrice;
END;

Dependent Objects
Dependent Obj

Dependent Obj Type

Product

USER_TABLE

ProductListPriceHistory

USER_TABLE

ufnGetProductStandardCost
Definition

Routine Definition
CREATE FUNCTION [dbo].[ufnGetProductStandardCost](@ProductID [int], @OrderDate [datetime])
RETURNS [money]
AS
-- Returns the standard cost for the product on a specific date.
BEGIN
DECLARE @StandardCost money;
SELECT @StandardCost = pch.[StandardCost]
FROM [Production].[Product] p
INNER JOIN [Production].[ProductCostHistory] pch
ON p.[ProductID] = pch.[ProductID]
AND p.[ProductID] = @ProductID
AND @OrderDate BETWEEN pch.[StartDate] AND COALESCE(pch.[EndDate], CONVERT(datetime, '99991231', 112)); -- Make sure
we get all the prices!
RETURN @StandardCost;
END;

Dependent Objects
Dependent Obj

Dependent Obj Type

Product

USER_TABLE

ProductCostHistory

USER_TABLE

ufnGetStock
Definition

Routine Definition
CREATE FUNCTION [dbo].[ufnGetStock](@ProductID [int])
RETURNS [int]
AS
-- Returns the stock level for the product. This function is used internally only
BEGIN
DECLARE @ret int;
SELECT @ret = SUM(p.[Quantity])
FROM [Production].[ProductInventory] p
WHERE p.[ProductID] = @ProductID
AND p.[LocationID] = '6'; -- Only look at inventory in the misc storage
IF (@ret IS NULL)
SET @ret = 0
RETURN @ret
END;

Dependent Objects
Dependent Obj
ProductInventory

ufnGetDocumentStatusText
Definition

Dependent Obj Type


USER_TABLE

Routine Definition
CREATE FUNCTION [dbo].[ufnGetDocumentStatusText](@Status [tinyint])
RETURNS [nvarchar](16)
AS
-- Returns the sales order status text representation for the status value.
BEGIN
DECLARE @ret [nvarchar](16);
SET @ret =
CASE @Status
WHEN 1 THEN N'Pending approval'
WHEN 2 THEN N'Approved'
WHEN 3 THEN N'Obsolete'
ELSE N'** Invalid **'
END;
RETURN @ret
END;

Dependent Objects
---None---

ufnGetPurchaseOrderStatusText
Definition

Routine Definition
CREATE FUNCTION [dbo].[ufnGetPurchaseOrderStatusText](@Status [tinyint])
RETURNS [nvarchar](15)
AS
-- Returns the sales order status text representation for the status value.
BEGIN
DECLARE @ret [nvarchar](15);
SET @ret =
CASE @Status
WHEN 1 THEN 'Pending'
WHEN 2 THEN 'Approved'
WHEN 3 THEN 'Rejected'
WHEN 4 THEN 'Complete'
ELSE '** Invalid **'
END;
RETURN @ret
END;

Dependent Objects
---None---

ufnGetSalesOrderStatusText
Definition

Routine Definition
CREATE FUNCTION [dbo].[ufnGetSalesOrderStatusText](@Status [tinyint])
RETURNS [nvarchar](15)
AS
-- Returns the sales order status text representation for the status value.
BEGIN
DECLARE @ret [nvarchar](15);
SET @ret =
CASE @Status
WHEN 1 THEN 'In process'
WHEN 2 THEN 'Approved'
WHEN 3 THEN 'Backordered'
WHEN 4 THEN 'Rejected'
WHEN 5 THEN 'Shipped'
WHEN 6 THEN 'Cancelled'
ELSE '** Invalid **'
END;
RETURN @ret
END;

Dependent Objects
---None---

Indexes
Table Name
Address

Index Name

Column
Name

AK_Address_r rowguid
owguid

Index
Type
NONCLUS
TERED

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal
true

false

false

false

false

false

Table Name

Address

Address

Address

Address

Address

Address
Address
AddressType

Index Name
IX_Address_A
ddressLine1_A
ddressLine2_C
ity_StateProvin
ceID_PostalCo
de
IX_Address_A
ddressLine1_A
ddressLine2_C
ity_StateProvin
ceID_PostalCo
de
IX_Address_A
ddressLine1_A
ddressLine2_C
ity_StateProvin
ceID_PostalCo
de
IX_Address_A
ddressLine1_A
ddressLine2_C
ity_StateProvin
ceID_PostalCo
de
IX_Address_A
ddressLine1_A
ddressLine2_C
ity_StateProvin
ceID_PostalCo
de
IX_Address_St
ateProvinceID
PK_Address_A
ddressID
AK_AddressTy
pe_Name

Column
Name

Index
Type

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal

AddressLin NONCLUS
e1
TERED

true

false

false

false

false

false

AddressLin NONCLUS
e2
TERED

true

false

false

false

false

false

NONCLUS
TERED

true

false

false

false

false

false

StateProvi NONCLUS
nceID
TERED

true

false

false

false

false

false

PostalCod NONCLUS
e
TERED

true

false

false

false

false

false

StateProvi NONCLUS
nceID
TERED
AddressID CLUSTER
ED
NONCLUS
Name
TERED

false

false

false

false

false

false

true

true

false

false

false

false

true

false

false

false

false

false

City

Table Name
AddressType
AddressType
AWBuildVersion

BillOfMaterials

BillOfMaterials

BillOfMaterials

BillOfMaterials
BillOfMaterials
Contact
Contact
Contact

Index Name
AK_AddressTy
pe_rowguid
PK_AddressTy
pe_AddressTy
peID
PK_AWBuildV
ersion_SystemI
nformationID
AK_BillOfMater
ials_ProductAs
semblyID_Com
ponentID_Start
Date
AK_BillOfMater
ials_ProductAs
semblyID_Com
ponentID_Start
Date
AK_BillOfMater
ials_ProductAs
semblyID_Com
ponentID_Start
Date
IX_BillOfMateri
als_UnitMeasu
reCode
PK_BillOfMater
ials_BillOfMate
rialsID
AK_Contact_ro
wguid
IX_Contact_E
mailAddress
PK_Contact_C
ontactID

Column
Name

Index
Type

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal

NONCLUS
TERED

true

false

false

false

false

false

AddressTy CLUSTER
peID
ED

true

true

false

false

false

false

SystemInfo CLUSTER
rmationID ED

true

true

false

false

false

false

ProductAs CLUSTER
semblyID ED

true

false

false

false

false

false

Componen CLUSTER
tID
ED

true

false

false

false

false

false

CLUSTER
ED

true

false

false

false

false

false

UnitMeasu NONCLUS
reCode
TERED

false

false

false

false

false

false

BillOfMater NONCLUS
ialsID
TERED

true

true

false

false

false

false

NONCLUS
TERED
EmailAddr NONCLUS
ess
TERED
ContactID CLUSTER
ED

true

false

false

false

false

false

false

false

false

false

false

false

true

true

false

false

false

false

rowguid

StartDate

rowguid

Table Name
Contact

ContactCreditCard

ContactCreditCard
ContactType
ContactType
CountryRegion
CountryRegion
CountryRegionCurrency

CountryRegionCurrency

CountryRegionCurrency

CreditCard

Index Name

Column
Name

PXML_Contact Additional
_AddContact ContactInf
o
PK_ContactCr
editCard_Cont ContactID
actID_CreditCa
rdID
PK_ContactCr
editCard_Cont CreditCard
actID_CreditCa ID
rdID
AK_ContactTy Name
pe_Name
PK_ContactTy ContactTy
pe_ContactTyp peID
eID
AK_CountryRe
gion_Name
PK_CountryRe
gion_CountryR
egionCode
IX_CountryReg
ionCurrency_C
urrencyCode
PK_CountryRe
gionCurrency_
CountryRegion
Code_Currenc
yCode
PK_CountryRe
gionCurrency_
CountryRegion
Code_Currenc
yCode
AK_CreditCard
_CardNumber

Index
Type

false

false

false

false

false

false

CLUSTER
ED

true

true

false

false

false

false

CLUSTER
ED

true

true

false

false

false

false

NONCLUS
TERED

true

false

false

false

false

false

CLUSTER
ED

true

true

false

false

false

false

NONCLUS
TERED

true

false

false

false

false

false

CountryRe CLUSTER
gionCode ED

true

true

false

false

false

false

CurrencyC NONCLUS
ode
TERED

false

false

false

false

false

false

CountryRe CLUSTER
gionCode ED

true

true

false

false

false

false

CurrencyC CLUSTER
ode
ED

true

true

false

false

false

false

CardNumb NONCLUS
er
TERED

true

false

false

false

false

false

Name

XML

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal

Table Name
CreditCard
Culture
Culture
Currency
Currency

CurrencyRate

CurrencyRate

CurrencyRate

CurrencyRate
Customer
Customer

Index Name
PK_CreditCard
_CreditCardID
AK_Culture_N
ame
PK_Culture_C
ultureID
AK_Currency_
Name
PK_Currency_
CurrencyCode
AK_CurrencyR
ate_CurrencyR
ateDate_From
CurrencyCode
_ToCurrencyC
ode
AK_CurrencyR
ate_CurrencyR
ateDate_From
CurrencyCode
_ToCurrencyC
ode
AK_CurrencyR
ate_CurrencyR
ateDate_From
CurrencyCode
_ToCurrencyC
ode
PK_CurrencyR
ate_CurrencyR
ateID
AK_Customer_
AccountNumbe
r
AK_Customer_
rowguid

Column
Name

Index
Type

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal

CreditCard CLUSTER
ID
ED
NONCLUS
Name
TERED
CultureID CLUSTER
ED
NONCLUS
Name
TERED
CurrencyC CLUSTER
ode
ED

true

true

false

false

false

false

true

false

false

false

false

false

true

true

false

false

false

false

true

false

false

false

false

false

true

true

false

false

false

false

CurrencyR NONCLUS
ateDate
TERED

true

false

false

false

false

false

FromCurre NONCLUS
ncyCode TERED

true

false

false

false

false

false

ToCurrenc NONCLUS
yCode
TERED

true

false

false

false

false

false

CurrencyR CLUSTER
ateID
ED

true

true

false

false

false

false

AccountNu NONCLUS
mber
TERED

true

false

false

false

false

false

NONCLUS
TERED

true

false

false

false

false

false

rowguid

Table Name
Customer
Customer
CustomerAddress

CustomerAddress

CustomerAddress

DatabaseLog
Department
Department
Document
Document
Document
Employee

Index Name
IX_Customer_
TerritoryID
PK_Customer_
CustomerID
AK_CustomerA
ddress_rowgui
d
PK_CustomerA
ddress_Custo
merID_Addres
sID
PK_CustomerA
ddress_Custo
merID_Addres
sID
PK_DatabaseL
og_DatabaseL
ogID
AK_Departmen
t_Name
PK_Departmen
t_DepartmentI
D
AK_Document
_FileName_Re
vision
AK_Document
_FileName_Re
vision
PK_Document
_DocumentID
AK_Employee_
LoginID

Column
Name

Index
Type

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal

TerritoryID NONCLUS
TERED
CustomerI CLUSTER
D
ED

false

false

false

false

false

false

true

true

false

false

false

false

NONCLUS
TERED

true

false

false

false

false

false

CustomerI CLUSTER
D
ED

true

true

false

false

false

false

AddressID CLUSTER
ED

true

true

false

false

false

false

DatabaseL NONCLUS
ogID
TERED

true

true

false

false

false

false

NONCLUS
TERED

true

false

false

false

false

false

Departmen CLUSTER
tID
ED

true

true

false

false

false

false

FileName

NONCLUS
TERED

true

false

false

false

false

false

Revision

NONCLUS
TERED

true

false

false

false

false

false

DocumentI CLUSTER
D
ED
NONCLUS
LoginID
TERED

true

true

false

false

false

false

true

false

false

false

false

false

rowguid

Name

Table Name

Index Name

AK_Employee_
NationalIDNum
ber
AK_Employee_
Employee
rowguid
IX_Employee_
Employee
ManagerID
PK_Employee_
Employee
EmployeeID
AK_Employee
EmployeeAddress
Address_rowg
uid
PK_Employee
Address_Empl
EmployeeAddress
oyeeID_Addres
sID
PK_Employee
Address_Empl
EmployeeAddress
oyeeID_Addres
sID
IX_EmployeeD
EmployeeDepartmentHistory epartmentHisto
ry_DepartmentI
D
IX_EmployeeD
EmployeeDepartmentHistory epartmentHisto
ry_ShiftID
PK_Employee
DepartmentHis
EmployeeDepartmentHistory tory_Employee
ID_StartDate_
DepartmentID
Employee

Column
Name

Index
Type

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal

NationalID NONCLUS
Number
TERED

true

false

false

false

false

false

NONCLUS
TERED
ManagerID NONCLUS
TERED
EmployeeI CLUSTER
D
ED

true

false

false

false

false

false

false

false

false

false

false

false

true

true

false

false

false

false

NONCLUS
TERED

true

false

false

false

false

false

EmployeeI CLUSTER
D
ED

true

true

false

false

false

false

AddressID CLUSTER
ED

true

true

false

false

false

false

Departmen NONCLUS
tID
TERED

false

false

false

false

false

false

NONCLUS
TERED

false

false

false

false

false

false

EmployeeI CLUSTER
D
ED

true

true

false

false

false

false

rowguid

rowguid

ShiftID

Table Name

Index Name

PK_Employee
DepartmentHis
EmployeeDepartmentHistory tory_Employee
ID_StartDate_
DepartmentID
PK_Employee
DepartmentHis
EmployeeDepartmentHistory tory_Employee
ID_StartDate_
DepartmentID
PK_Employee
DepartmentHis
EmployeeDepartmentHistory tory_Employee
ID_StartDate_
DepartmentID
PK_Employee
PayHistory_Em
EmployeePayHistory
ployeeID_Rate
ChangeDate
PK_Employee
PayHistory_Em
EmployeePayHistory
ployeeID_Rate
ChangeDate
PK_ErrorLog_
ErrorLog
ErrorLogID
PK_Illustration
Illustration
_IllustrationID
PK_Individual_
Individual
CustomerID
PXML_Individu
Individual
al_Demographi
cs
XMLPATH_Indi
Individual
vidual_Demogr
aphics

Column
Name

Index
Type

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal

Departmen CLUSTER
tID
ED

true

true

false

false

false

false

ShiftID

CLUSTER
ED

true

true

false

false

false

false

StartDate

CLUSTER
ED

true

true

false

false

false

false

EmployeeI CLUSTER
D
ED

true

true

false

false

false

false

RateChang CLUSTER
eDate
ED

true

true

false

false

false

false

ErrorLogID CLUSTER
ED
IllustrationI CLUSTER
D
ED
CustomerI CLUSTER
D
ED

true

true

false

false

false

false

true

true

false

false

false

false

true

true

false

false

false

false

Demograp XML
hics

false

false

false

false

false

false

Demograp XML
hics

false

false

false

false

false

false

Table Name
Individual
Individual
JobCandidate
JobCandidate
Location
Location
Product
Product
Product
Product
ProductCategory
ProductCategory
ProductCategory

ProductCostHistory

Index Name
XMLPROPERT
Y_Individual_D
emographics
XMLVALUE_In
dividual_Demo
graphics
IX_JobCandida
te_EmployeeID
PK_JobCandid
ate_JobCandid
ateID
AK_Location_
Name
PK_Location_L
ocationID
AK_Product_N
ame
AK_Product_Pr
oductNumber
AK_Product_ro
wguid
PK_Product_Pr
oductID
AK_ProductCat
egory_Name
AK_ProductCat
egory_rowguid
PK_ProductCat
egory_Product
CategoryID
PK_ProductCo
stHistory_Prod
uctID_StartDat
e

Column
Name

Index
Type

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal

Demograp XML
hics

false

false

false

false

false

false

Demograp XML
hics

false

false

false

false

false

false

EmployeeI NONCLUS
D
TERED

false

false

false

false

false

false

JobCandid CLUSTER
ateID
ED

true

true

false

false

false

false

NONCLUS
TERED
LocationID CLUSTER
ED
NONCLUS
Name
TERED
ProductNu NONCLUS
mber
TERED
NONCLUS
rowguid
TERED
ProductID CLUSTER
ED
NONCLUS
Name
TERED
NONCLUS
rowguid
TERED

true

false

false

false

false

false

true

true

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

true

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

ProductCat CLUSTER
egoryID
ED

true

true

false

false

false

false

ProductID CLUSTER
ED

true

true

false

false

false

false

Name

Table Name

ProductCostHistory

ProductDescription

ProductDescription

ProductDocument

ProductDocument

ProductInventory
ProductInventory

ProductListPriceHistory

ProductListPriceHistory
ProductModel

Index Name
PK_ProductCo
stHistory_Prod
uctID_StartDat
e
AK_ProductDe
scription_rowg
uid
PK_ProductDe
scription_Prod
uctDescriptionI
D
PK_ProductDo
cument_Produ
ctID_Document
ID
PK_ProductDo
cument_Produ
ctID_Document
ID
PK_ProductInv
entory_Product
ID_LocationID
PK_ProductInv
entory_Product
ID_LocationID
PK_ProductList
PriceHistory_P
roductID_Start
Date
PK_ProductList
PriceHistory_P
roductID_Start
Date
AK_ProductMo
del_Name

Column
Name

Index
Type

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal

StartDate

CLUSTER
ED

true

true

false

false

false

false

rowguid

NONCLUS
TERED

true

false

false

false

false

false

ProductDe CLUSTER
scriptionID ED

true

true

false

false

false

false

ProductID CLUSTER
ED

true

true

false

false

false

false

DocumentI CLUSTER
D
ED

true

true

false

false

false

false

ProductID CLUSTER
ED

true

true

false

false

false

false

LocationID CLUSTER
ED

true

true

false

false

false

false

ProductID CLUSTER
ED

true

true

false

false

false

false

StartDate

CLUSTER
ED

true

true

false

false

false

false

Name

NONCLUS
TERED

true

false

false

false

false

false

Table Name

Index Name

AK_ProductMo
del_rowguid
PK_ProductMo
ProductModel
del_ProductMo
delID
PXML_Product
ProductModel
Model_Catalog
Description
PXML_Product
ProductModel
Model_Instructi
ons
PK_ProductMo
delIllustration_
ProductModelIllustration
ProductModelI
D_IllustrationID
PK_ProductMo
delIllustration_
ProductModelIllustration
ProductModelI
D_IllustrationID
PK_ProductMo
delProductDes
ProductModelProductDescrip criptionCulture
_ProductModel
tionCulture
ID_ProductDes
criptionID_Cult
ureID
PK_ProductMo
delProductDes
ProductModelProductDescrip criptionCulture
_ProductModel
tionCulture
ID_ProductDes
criptionID_Cult
ureID
ProductModel

Column
Name

Index
Type

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal

NONCLUS
TERED

true

false

false

false

false

false

ProductMo CLUSTER
delID
ED

true

true

false

false

false

false

CatalogDe XML
scription

false

false

false

false

false

false

Instruction XML
s

false

false

false

false

false

false

ProductMo CLUSTER
delID
ED

true

true

false

false

false

false

IllustrationI CLUSTER
D
ED

true

true

false

false

false

false

ProductMo CLUSTER
delID
ED

true

true

false

false

false

false

ProductDe CLUSTER
scriptionID ED

true

true

false

false

false

false

rowguid

Table Name

Index Name

PK_ProductMo
delProductDes
ProductModelProductDescrip criptionCulture
_ProductModel
tionCulture
ID_ProductDes
criptionID_Cult
ureID
PK_ProductPh
ProductPhoto
oto_ProductPh
otoID
PK_ProductPro
ductPhoto_Pro
ProductProductPhoto
ductID_Product
PhotoID
PK_ProductPro
ductPhoto_Pro
ProductProductPhoto
ductID_Product
PhotoID
IX_ProductRev
ProductReview
iew_ProductID
_Name
IX_ProductRev
ProductReview
iew_ProductID
_Name
IX_ProductRev
ProductReview
iew_ProductID
_Name
PK_ProductRe
ProductReview
view_ProductR
eviewID
AK_ProductSu
ProductSubcategory
bcategory_Na
me
AK_ProductSu
ProductSubcategory
bcategory_row
guid

Column
Name

Index
Type

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal

CLUSTER
ED

true

true

false

false

false

false

ProductPh CLUSTER
otoID
ED

true

true

false

false

false

false

ProductID NONCLUS
TERED

true

true

false

false

false

false

ProductPh NONCLUS
otoID
TERED

true

true

false

false

false

false

ProductID NONCLUS
TERED

false

false

false

false

false

false

ReviewerN NONCLUS
ame
TERED

false

false

false

false

false

false

Comments NONCLUS
TERED

false

false

false

false

false

false

ProductRe CLUSTER
viewID
ED

true

true

false

false

false

false

Name

NONCLUS
TERED

true

false

false

false

false

false

rowguid

NONCLUS
TERED

true

false

false

false

false

false

CultureID

Table Name

ProductSubcategory

ProductVendor
ProductVendor
ProductVendor
ProductVendor
PurchaseOrderDetail

PurchaseOrderDetail

PurchaseOrderDetail

PurchaseOrderHeader
PurchaseOrderHeader

Index Name
PK_ProductSu
bcategory_Pro
ductSubcatego
ryID
IX_ProductVen
dor_UnitMeasu
reCode
IX_ProductVen
dor_VendorID
PK_ProductVe
ndor_ProductI
D_VendorID
PK_ProductVe
ndor_ProductI
D_VendorID
IX_PurchaseOr
derDetail_Prod
uctID
PK_PurchaseO
rderDetail_Pur
chaseOrderID_
PurchaseOrder
DetailID
PK_PurchaseO
rderDetail_Pur
chaseOrderID_
PurchaseOrder
DetailID
IX_PurchaseOr
derHeader_Em
ployeeID
IX_PurchaseOr
derHeader_Ve
ndorID

Column
Name

Index
Type

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal

ProductSu CLUSTER
bcategoryI ED
D

true

true

false

false

false

false

UnitMeasu NONCLUS
reCode
TERED

false

false

false

false

false

false

NONCLUS
TERED

false

false

false

false

false

false

ProductID CLUSTER
ED

true

true

false

false

false

false

CLUSTER
ED

true

true

false

false

false

false

ProductID NONCLUS
TERED

false

false

false

false

false

false

PurchaseO CLUSTER
rderID
ED

true

true

false

false

false

false

PurchaseO CLUSTER
rderDetailI ED
D

true

true

false

false

false

false

EmployeeI NONCLUS
D
TERED

false

false

false

false

false

false

NONCLUS
TERED

false

false

false

false

false

false

VendorID

VendorID

VendorID

Table Name

Index Name

PK_PurchaseO
rderHeader_Pu
rchaseOrderID
queue_messages_19770580 queue_clustere
79
d_index
queue_messages_19770580 queue_clustere
79
d_index

Column
Name

Index
Type

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal

PurchaseO CLUSTER
rderID
ED

true

true

false

false

false

false

CLUSTER
ED
queuing_or CLUSTER
der
ED
queue_messages_19770580 queue_clustere conversati
on_group_i CLUSTER
79
d_index
ED
d

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

queue_messages_19770580
79
queue_messages_19770580
79
queue_messages_19770580
79
queue_messages_19770580
79

conversati CLUSTER
on_handle ED
NONCLUS
status
TERED
NONCLUS
priority
TERED
queuing_or NONCLUS
der
TERED
queue_messages_19770580 queue_second conversati
on_group_i NONCLUS
79
ary_index
TERED
d

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

queue_messages_19770580
79
queue_messages_19770580
79
queue_messages_20090581
93
queue_messages_20090581
93

conversati NONCLUS
on_handle TERED
service_id NONCLUS
TERED
CLUSTER
status
ED
queuing_or CLUSTER
der
ED
queue_messages_20090581 queue_clustere conversati
on_group_i CLUSTER
93
d_index
ED
d

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

queue_messages_20090581 queue_clustere conversati CLUSTER


93
d_index
on_handle ED

true

false

false

false

false

false

PurchaseOrderHeader

status

queue_clustere
d_index
queue_second
ary_index
queue_second
ary_index
queue_second
ary_index

queue_second
ary_index
queue_second
ary_index
queue_clustere
d_index
queue_clustere
d_index

Table Name

Index Name

queue_messages_20090581
93
queue_messages_20090581
93
queue_messages_20090581
93

queue_second
ary_index
queue_second
ary_index
queue_second
ary_index

Column
Name

Index
Type

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal

NONCLUS
TERED
NONCLUS
priority
TERED
queuing_or NONCLUS
der
TERED
queue_messages_20090581 queue_second conversati
on_group_i NONCLUS
93
ary_index
TERED
d

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

queue_messages_20090581
93
queue_messages_20090581
93
queue_messages_20410583
07
queue_messages_20410583
07

conversati NONCLUS
on_handle TERED
service_id NONCLUS
TERED
CLUSTER
status
ED
queuing_or CLUSTER
der
ED
queue_messages_20410583 queue_clustere conversati
on_group_i CLUSTER
07
d_index
ED
d

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

queue_messages_20410583
07
queue_messages_20410583
07
queue_messages_20410583
07
queue_messages_20410583
07

conversati CLUSTER
on_handle ED
NONCLUS
status
TERED
NONCLUS
priority
TERED
queuing_or NONCLUS
der
TERED
queue_messages_20410583 queue_second conversati
on_group_i NONCLUS
07
ary_index
TERED
d

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

queue_messages_20410583 queue_second conversati NONCLUS


07
ary_index
on_handle TERED

true

false

false

false

false

false

status

queue_second
ary_index
queue_second
ary_index
queue_clustere
d_index
queue_clustere
d_index

queue_clustere
d_index
queue_second
ary_index
queue_second
ary_index
queue_second
ary_index

Table Name

Index Name

Column
Name

Index
Type

queue_messages_20410583 queue_second service_id NONCLUS


07
ary_index
TERED
AK_SalesOrde
NONCLUS
SalesOrderDetail
rDetail_rowgui rowguid
TERED
d
IX_SalesOrder
Detail_ProductI
D
PK_SalesOrde
rDetail_SalesO
SalesOrderDetail
rderID_SalesO
rderDetailID
PK_SalesOrde
rDetail_SalesO
SalesOrderDetail
rderID_SalesO
rderDetailID
AK_SalesOrde
SalesOrderHeader
rHeader_rowgu
id
AK_SalesOrde
SalesOrderHeader
rHeader_Sales
OrderNumber
IX_SalesOrder
SalesOrderHeader
Header_Custo
merID
IX_SalesOrder
SalesOrderHeader
Header_Sales
PersonID
PK_SalesOrde
SalesOrderHeader
rHeader_Sales
OrderID
PK_SalesOrde
SalesOrderHeaderSalesReas rHeaderSalesR
eason_SalesOr
on
derID_SalesRe
asonID
SalesOrderDetail

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal
true

false

false

false

false

false

true

false

false

false

false

false

ProductID NONCLUS
TERED

false

false

false

false

false

false

SalesOrder CLUSTER
ID
ED

true

true

false

false

false

false

SalesOrder CLUSTER
DetailID
ED

true

true

false

false

false

false

NONCLUS
TERED

true

false

false

false

false

false

SalesOrder NONCLUS
Number
TERED

true

false

false

false

false

false

CustomerI NONCLUS
D
TERED

false

false

false

false

false

false

SalesPers NONCLUS
onID
TERED

false

false

false

false

false

false

SalesOrder CLUSTER
ID
ED

true

true

false

false

false

false

SalesOrder CLUSTER
ID
ED

true

true

false

false

false

false

rowguid

Table Name

Index Name

PK_SalesOrde
SalesOrderHeaderSalesReas rHeaderSalesR
eason_SalesOr
on
derID_SalesRe
asonID
AK_SalesPers
SalesPerson
on_rowguid
PK_SalesPers
SalesPerson
on_SalesPerso
nID
AK_SalesPers
SalesPersonQuotaHistory
onQuotaHistor
y_rowguid
PK_SalesPers
onQuotaHistor
SalesPersonQuotaHistory
y_SalesPerson
ID_QuotaDate
PK_SalesPers
onQuotaHistor
SalesPersonQuotaHistory
y_SalesPerson
ID_QuotaDate
PK_SalesReas
SalesReason
on_SalesReas
onID
AK_SalesTaxR
SalesTaxRate
ate_rowguid
AK_SalesTaxR
ate_StateProvi
SalesTaxRate
nceID_TaxTyp
e
AK_SalesTaxR
ate_StateProvi
SalesTaxRate
nceID_TaxTyp
e

Column
Name

Index
Type

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal

SalesReas CLUSTER
onID
ED

true

true

false

false

false

false

NONCLUS
TERED

true

false

false

false

false

false

SalesPers CLUSTER
onID
ED

true

true

false

false

false

false

NONCLUS
TERED

true

false

false

false

false

false

SalesPers CLUSTER
onID
ED

true

true

false

false

false

false

QuotaDate CLUSTER
ED

true

true

false

false

false

false

SalesReas CLUSTER
onID
ED

true

true

false

false

false

false

NONCLUS
TERED

true

false

false

false

false

false

StateProvi NONCLUS
nceID
TERED

true

false

false

false

false

false

NONCLUS
TERED

true

false

false

false

false

false

rowguid

rowguid

rowguid

TaxType

Table Name
SalesTaxRate
SalesTerritory
SalesTerritory
SalesTerritory
SalesTerritoryHistory

SalesTerritoryHistory

SalesTerritoryHistory

SalesTerritoryHistory

ScrapReason
ScrapReason
Shift
Shift

Index Name
PK_SalesTaxR
ate_SalesTaxR
ateID
AK_SalesTerrit
ory_Name
AK_SalesTerrit
ory_rowguid
PK_SalesTerrit
ory_TerritoryID
AK_SalesTerrit
oryHistory_row
guid
PK_SalesTerrit
oryHistory_Sal
esPersonID_St
artDate_Territo
ryID
PK_SalesTerrit
oryHistory_Sal
esPersonID_St
artDate_Territo
ryID
PK_SalesTerrit
oryHistory_Sal
esPersonID_St
artDate_Territo
ryID
AK_ScrapReas
on_Name
PK_ScrapReas
on_ScrapReas
onID
AK_Shift_Nam
e
AK_Shift_Start
Time_EndTime

Column
Name

Index
Type

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal

SalesTaxR CLUSTER
ateID
ED

true

true

false

false

false

false

NONCLUS
TERED
NONCLUS
rowguid
TERED
TerritoryID CLUSTER
ED

true

false

false

false

false

false

true

false

false

false

false

false

true

true

false

false

false

false

NONCLUS
TERED

true

false

false

false

false

false

SalesPers CLUSTER
onID
ED

true

true

false

false

false

false

TerritoryID CLUSTER
ED

true

true

false

false

false

false

StartDate

CLUSTER
ED

true

true

false

false

false

false

Name

NONCLUS
TERED

true

false

false

false

false

false

ScrapReas CLUSTER
onID
ED

true

true

false

false

false

false

NONCLUS
TERED
NONCLUS
TERED

true

false

false

false

false

false

true

false

false

false

false

false

Name

rowguid

Name
StartTime

Table Name
Shift
Shift
ShipMethod
ShipMethod
ShipMethod

ShoppingCartItem

ShoppingCartItem

ShoppingCartItem
SpecialOffer
SpecialOffer
SpecialOfferProduct
SpecialOfferProduct

Index Name
AK_Shift_Start
Time_EndTime
PK_Shift_ShiftI
D
AK_ShipMetho
d_Name
AK_ShipMetho
d_rowguid
PK_ShipMetho
d_ShipMethodI
D
IX_ShoppingC
artItem_Shoppi
ngCartID_Prod
uctID
IX_ShoppingC
artItem_Shoppi
ngCartID_Prod
uctID
PK_ShoppingC
artItem_Shoppi
ngCartItemID
AK_SpecialOff
er_rowguid
PK_SpecialOff
er_SpecialOffe
rID
AK_SpecialOff
erProduct_row
guid
IX_SpecialOffe
rProduct_Prod
uctID

Column
Name

Index
Type

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal

NONCLUS
TERED
CLUSTER
ED
NONCLUS
TERED
NONCLUS
TERED

true

false

false

false

false

false

true

true

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

ShipMetho CLUSTER
dID
ED

true

true

false

false

false

false

ShoppingC NONCLUS
artID
TERED

false

false

false

false

false

false

ProductID NONCLUS
TERED

false

false

false

false

false

false

ShoppingC CLUSTER
artItemID ED

true

true

false

false

false

false

NONCLUS
TERED

true

false

false

false

false

false

SpecialOff CLUSTER
erID
ED

true

true

false

false

false

false

NONCLUS
TERED

true

false

false

false

false

false

ProductID NONCLUS
TERED

false

false

false

false

false

false

EndTime
ShiftID
Name
rowguid

rowguid

rowguid

Table Name

SpecialOfferProduct

SpecialOfferProduct
StateProvince
StateProvince

StateProvince

StateProvince

StateProvince
Store
Store
Store
Store
StoreContact

Index Name
PK_SpecialOff
erProduct_Spe
cialOfferID_Pro
ductID
PK_SpecialOff
erProduct_Spe
cialOfferID_Pro
ductID
AK_StateProvi
nce_Name
AK_StateProvi
nce_rowguid
AK_StateProvi
nce_StateProvi
nceCode_Cou
ntryRegionCod
e
AK_StateProvi
nce_StateProvi
nceCode_Cou
ntryRegionCod
e
PK_StateProvi
nce_StateProvi
nceID
AK_Store_row
guid
IX_Store_Sale
sPersonID
PK_Store_Cust
omerID
PXML_Store_
Demographics
AK_StoreCont
act_rowguid

Column
Name

Index
Type

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal

SpecialOff CLUSTER
erID
ED

true

true

false

false

false

false

ProductID CLUSTER
ED

true

true

false

false

false

false

NONCLUS
TERED
NONCLUS
TERED

true

false

false

false

false

false

true

false

false

false

false

false

StateProvi NONCLUS
nceCode TERED

true

false

false

false

false

false

CountryRe NONCLUS
gionCode TERED

true

false

false

false

false

false

StateProvi CLUSTER
nceID
ED

true

true

false

false

false

false

NONCLUS
TERED
SalesPers NONCLUS
onID
TERED
CustomerI CLUSTER
D
ED
Demograp XML
hics
NONCLUS
rowguid
TERED

true

false

false

false

false

false

false

false

false

false

false

false

true

true

false

false

false

false

false

false

false

false

false

false

true

false

false

false

false

false

Name
rowguid

rowguid

Table Name

Index Name

Column
Name

Index
Type

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal

IX_StoreConta
ct_ContactID
IX_StoreConta
ct_ContactTyp
eID
PK_StoreCont
act_CustomerI
D_ContactID
PK_StoreCont
act_CustomerI
D_ContactID

ContactID NONCLUS
TERED

false

false

false

false

false

false

ContactTy NONCLUS
peID
TERED

false

false

false

false

false

false

CustomerI CLUSTER
D
ED

true

true

false

false

false

false

ContactID CLUSTER
ED

true

true

false

false

false

false

sysallocunits

clust

auid

true

false

false

false

false

false

sysasymkeys

cl

true

false

false

false

false

false

sysasymkeys

nc1

true

false

false

false

false

false

sysasymkeys

nc3

true

false

false

false

false

false

sysbinobjs

clst

true

false

false

false

false

false

sysbinobjs

clst

true

false

false

false

false

false

sysbinobjs

nc1

true

false

false

false

false

false

sysbinobjs

nc1

true

false

false

false

false

false

sysbinobjs

nc1

true

false

false

false

false

false

sysbinsubobjs

clst

true

false

false

false

false

false

sysbinsubobjs

clst

CLUSTER
ED
CLUSTER
id
ED
NONCLUS
name
TERED
thumbprint NONCLUS
TERED
CLUSTER
class
ED
CLUSTER
id
ED
NONCLUS
class
TERED
NONCLUS
nsid
TERED
NONCLUS
name
TERED
CLUSTER
class
ED
CLUSTER
idmajor
ED

true

false

false

false

false

false

StoreContact
StoreContact
StoreContact
StoreContact

Table Name

Index Name

sysbinsubobjs

clst

sysbinsubobjs

nc1

sysbinsubobjs

nc1

sysbinsubobjs

nc1

syscerts

cl

syscerts

nc1

syscerts

nc2

syscerts

nc2

syscerts

nc3

sysclsobjs

clst

sysclsobjs

clst

sysclsobjs

nc

sysclsobjs

nc

syscolpars

clst

syscolpars

clst

syscolpars

clst

syscolpars

nc

Column
Name

Index
Type

CLUSTER
ED
NONCLUS
name
TERED
NONCLUS
idmajor
TERED
NONCLUS
class
TERED
CLUSTER
id
ED
NONCLUS
name
TERED
NONCLUS
issuer
TERED
NONCLUS
snum
TERED
thumbprint NONCLUS
TERED
CLUSTER
class
ED
CLUSTER
id
ED
NONCLUS
name
TERED
NONCLUS
class
TERED
CLUSTER
id
ED
CLUSTER
number
ED
CLUSTER
colid
ED
NONCLUS
name
TERED
subid

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal
true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

Table Name

Index Name

syscolpars

nc

syscolpars

nc

sysconvgroup

clst

sysdbfiles

clst

sysdbfiles

clst

sysdercv

cl

sysdercv

cl

sysdesend

cl

sysftinds

clst

sysguidrefs

cl

sysguidrefs

cl

sysguidrefs

cl

sysguidrefs

nc

sysguidrefs

nc

syshobtcolumns

clust

syshobtcolumns

clust

syshobts

clust

Column
Name

Index
Type

NONCLUS
TERED
NONCLUS
number
TERED
CLUSTER
id
ED
CLUSTER
dbid
ED
CLUSTER
fileid
ED
CLUSTER
diagid
ED
CLUSTER
initiator
ED
CLUSTER
handle
ED
CLUSTER
id
ED
CLUSTER
class
ED
CLUSTER
id
ED
CLUSTER
subid
ED
NONCLUS
guid
TERED
NONCLUS
class
TERED
CLUSTER
hobtid
ED
hobtcolum CLUSTER
nid
ED
CLUSTER
hobtid
ED
id

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal
true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

Table Name

Index Name

sysidxstats

clst

sysidxstats

clst

sysidxstats

nc

sysidxstats

nc

sysiscols

clst

sysiscols

clst

sysiscols

clst

sysmultiobjrefs

clst

sysmultiobjrefs

clst

sysmultiobjrefs

clst

sysmultiobjrefs

clst

sysmultiobjrefs

clst

sysmultiobjrefs

nc1

sysmultiobjrefs

nc1

sysmultiobjrefs

nc1

sysmultiobjrefs

nc1

sysmultiobjrefs

nc1

Column
Name

Index
Type

CLUSTER
ED
CLUSTER
indid
ED
NONCLUS
name
TERED
NONCLUS
id
TERED
CLUSTER
idmajor
ED
CLUSTER
idminor
ED
CLUSTER
subid
ED
CLUSTER
class
ED
CLUSTER
depid
ED
depsubid CLUSTER
ED
CLUSTER
indepid
ED
indepsubid CLUSTER
ED
NONCLUS
indepid
TERED
NONCLUS
class
TERED
indepsubid NONCLUS
TERED
NONCLUS
depid
TERED
depsubid NONCLUS
TERED
id

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal
true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

Table Name

Index Name

sysnsobjs

clst

sysnsobjs

clst

sysnsobjs

nc

sysnsobjs

nc

sysnsobjs

nc

sysobjkeycrypts

cl

sysobjkeycrypts

cl

sysobjkeycrypts

cl

sysobjvalues

clst

sysobjvalues

clst

sysobjvalues

clst

sysobjvalues

clst

sysowners

clst

sysowners

nc1

sysowners

nc2

sysowners

nc2

sysprivs

clust

Column
Name

Index
Type

CLUSTER
ED
CLUSTER
id
ED
NONCLUS
name
TERED
NONCLUS
nsid
TERED
NONCLUS
class
TERED
CLUSTER
class
ED
CLUSTER
id
ED
thumbprint CLUSTER
ED
CLUSTER
valclass
ED
CLUSTER
objid
ED
CLUSTER
subobjid
ED
CLUSTER
valnum
ED
CLUSTER
id
ED
NONCLUS
name
TERED
NONCLUS
sid
TERED
NONCLUS
id
TERED
CLUSTER
class
ED
class

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal
true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

Table Name

Index Name

sysprivs

clust

sysprivs

clust

sysprivs

clust

sysprivs

clust

sysprivs

clust

sysqnames

clst

sysqnames

clst

sysqnames

clst

sysqnames

nc1

sysremsvcbinds

clst

sysremsvcbinds

nc1

sysremsvcbinds

nc2

sysremsvcbinds

nc2

sysrowsetcolumns

clust

sysrowsetcolumns

clust

sysrowsetrefs

clust

sysrowsetrefs

clust

Column
Name

Index
Type

CLUSTER
ED
CLUSTER
subid
ED
CLUSTER
grantee
ED
CLUSTER
grantor
ED
CLUSTER
type
ED
CLUSTER
qid
ED
CLUSTER
hash
ED
CLUSTER
nid
ED
NONCLUS
nid
TERED
CLUSTER
id
ED
NONCLUS
name
TERED
NONCLUS
scid
TERED
NONCLUS
remsvc
TERED
CLUSTER
rowsetid
ED
rowsetcolid CLUSTER
ED
CLUSTER
class
ED
CLUSTER
objid
ED
id

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal
true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

Table Name

Index Name

sysrowsetrefs

clust

sysrowsetrefs

clust

sysrowsets

clust

sysrts

clst

sysrts

nc1

sysrts

nc1

sysrts

nc1

sysrts

nc2

sysscalartypes

clst

sysscalartypes

nc1

sysscalartypes

nc1

sysscalartypes

nc2

sysscalartypes

nc2

sysschobjs

clst

sysschobjs

nc1

sysschobjs

nc1

sysschobjs

nc1

Column
Name

Index
Type

CLUSTER
ED
rowsetnum CLUSTER
ED
CLUSTER
rowsetid
ED
CLUSTER
id
ED
NONCLUS
remsvc
TERED
NONCLUS
brkrinst
TERED
NONCLUS
id
TERED
NONCLUS
name
TERED
CLUSTER
id
ED
NONCLUS
schid
TERED
NONCLUS
name
TERED
NONCLUS
name
TERED
NONCLUS
schid
TERED
CLUSTER
id
ED
NONCLUS
nsclass
TERED
NONCLUS
nsid
TERED
NONCLUS
name
TERED
indexid

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal
true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

Table Name

Index Name

sysschobjs

nc2

sysschobjs

nc2

sysschobjs

nc2

sysschobjs

nc3

sysschobjs

nc3

sysserefs

clust

sysserefs

clust

sysserefs

clust

syssingleobjrefs

clst

syssingleobjrefs

clst

syssingleobjrefs

clst

syssingleobjrefs

nc1

syssingleobjrefs

nc1

syssingleobjrefs

nc1

syssingleobjrefs

nc1

syssingleobjrefs

nc1

syssqlguides

clst

Column
Name

Index
Type

NONCLUS
TERED
NONCLUS
nsid
TERED
NONCLUS
nsclass
TERED
NONCLUS
pid
TERED
NONCLUS
pclass
TERED
CLUSTER
class
ED
CLUSTER
depid
ED
CLUSTER
indepid
ED
CLUSTER
class
ED
CLUSTER
depid
ED
depsubid CLUSTER
ED
NONCLUS
indepid
TERED
NONCLUS
class
TERED
indepsubid NONCLUS
TERED
NONCLUS
depid
TERED
depsubid NONCLUS
TERED
CLUSTER
id
ED
name

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal
true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

false

false

false

false

false

false

false

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

Table Name

Index Name

syssqlguides

nc1

syssqlguides

nc2

syssqlguides

nc2

syssqlguides

nc2

syssqlguides

nc2

systypedsubobjs

clst

systypedsubobjs

clst

systypedsubobjs

clst

systypedsubobjs

nc

systypedsubobjs

nc

systypedsubobjs

nc

sysxmitqueue

clst

sysxmitqueue

clst

sysxmitqueue

clst

sysxmlcomponent

cl

sysxmlcomponent

nc1

sysxmlcomponent

nc1

Column
Name

Index
Type

NONCLUS
TERED
scopetype NONCLUS
TERED
NONCLUS
scopeid
TERED
NONCLUS
hash
TERED
NONCLUS
id
TERED
CLUSTER
class
ED
CLUSTER
idmajor
ED
CLUSTER
subid
ED
NONCLUS
name
TERED
NONCLUS
idmajor
TERED
NONCLUS
class
TERED
CLUSTER
dlgid
ED
CLUSTER
finitiator
ED
msgseqnu CLUSTER
m
ED
CLUSTER
id
ED
NONCLUS
xsdid
TERED
NONCLUS
uriord
TERED
name

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal
true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

Table Name

Index Name

Column
Name

Index
Type

NONCLUS
TERED
NONCLUS
nameid
TERED
symspace NONCLUS
TERED
nmscope NONCLUS
TERED
CLUSTER
compid
ED
CLUSTER
ord
ED
placingid CLUSTER
ED
CLUSTER
ordinal
ED
NONCLUS
placedid
TERED
placingid NONCLUS
TERED
NONCLUS
ordinal
TERED
CLUSTER
class
ED
CLUSTER
id
ED
CLUSTER
subid
ED
CLUSTER
name
ED

sysxmlcomponent

nc1

qual

sysxmlcomponent

nc1

sysxmlcomponent

nc1

sysxmlcomponent

nc1

sysxmlfacet

cl

sysxmlfacet

cl

sysxmlplacement

cl

sysxmlplacement

cl

sysxmlplacement

nc1

sysxmlplacement

nc1

sysxmlplacement

nc1

sysxprops

clust

sysxprops

clust

sysxprops

clust

sysxprops

clust

TransactionHistory

IX_Transaction
History_Produc ProductID NONCLUS
TERED
tID

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal
true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

false

false

false

false

false

false

Table Name

TransactionHistory

TransactionHistory

TransactionHistory
TransactionHistoryArchive

TransactionHistoryArchive

TransactionHistoryArchive

TransactionHistoryArchive

ufnGetContactInformation
UnitMeasure

Index Name
IX_Transaction
History_Refere
nceOrderID_R
eferenceOrder
LineID
IX_Transaction
History_Refere
nceOrderID_R
eferenceOrder
LineID
PK_Transactio
nHistory_Trans
actionID
IX_Transaction
HistoryArchive
_ProductID
IX_Transaction
HistoryArchive
_ReferenceOrd
erID_Referenc
eOrderLineID
IX_Transaction
HistoryArchive
_ReferenceOrd
erID_Referenc
eOrderLineID
PK_Transactio
nHistoryArchiv
e_TransactionI
D
PK__ufnGetCo
ntactInf__6008
3D91
AK_UnitMeasu
re_Name

Column
Name

Index
Type

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal

Reference NONCLUS
OrderID
TERED

false

false

false

false

false

false

Reference NONCLUS
OrderLineI TERED
D

false

false

false

false

false

false

Transactio CLUSTER
nID
ED

true

true

false

false

false

false

ProductID NONCLUS
TERED

false

false

false

false

false

false

Reference NONCLUS
OrderID
TERED

false

false

false

false

false

false

Reference NONCLUS
OrderLineI TERED
D

false

false

false

false

false

false

Transactio CLUSTER
nID
ED

true

true

false

false

false

false

ContactID CLUSTER
ED

true

true

false

false

false

false

NONCLUS
TERED

true

false

false

false

false

false

Name

Table Name

Index Name

PK_UnitMeasu
re_UnitMeasur
eCode
AK_Vendor_Ac
Vendor
countNumber
PK_Vendor_V
Vendor
endorID
IX_VendorAddr
VendorAddress
ess_AddressID
PK_VendorAd
VendorAddress
dress_VendorI
D_AddressID
PK_VendorAd
VendorAddress
dress_VendorI
D_AddressID
IX_VendorCont
VendorContact
act_ContactID
IX_VendorCont
VendorContact
act_ContactTy
peID
PK_VendorCo
VendorContact
ntact_VendorI
D_ContactID
PK_VendorCo
VendorContact
ntact_VendorI
D_ContactID
IX_vProductAn
vProductAndDescription
dDescription
IX_vProductAn
vProductAndDescription
dDescription
vStateProvinceCountryRegio IX_vStateProvi
nceCountryRe
n
gion
UnitMeasure

Column
Name

Index
Type

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal

UnitMeasu CLUSTER
reCode
ED

true

true

false

false

false

false

AccountNu NONCLUS
mber
TERED
VendorID CLUSTER
ED
AddressID NONCLUS
TERED

true

false

false

false

false

false

true

true

false

false

false

false

false

false

false

false

false

false

CLUSTER
ED

true

true

false

false

false

false

AddressID CLUSTER
ED

true

true

false

false

false

false

ContactID NONCLUS
TERED

false

false

false

false

false

false

ContactTy NONCLUS
peID
TERED

false

false

false

false

false

false

CLUSTER
ED

true

true

false

false

false

false

ContactID CLUSTER
ED

true

true

false

false

false

false

ProductID CLUSTER
ED
CultureID CLUSTER
ED

true

false

false

false

false

false

true

false

false

false

false

false

StateProvi CLUSTER
nceID
ED

true

false

false

false

false

false

VendorID

VendorID

Table Name

Index Name

Column
Name

Index
Type

vStateProvinceCountryRegio IX_vStateProvi
CLUSTER
nceCountryRe CountryRe
n
gionCode
ED
gion
IX_WorkOrder ProductID NONCLUS
WorkOrder
_ProductID
TERED
IX_WorkOrder ScrapReas NONCLUS
WorkOrder
_ScrapReasonI onID
TERED
D
PK_WorkOrder
_WorkOrderID
IX_WorkOrder
WorkOrderRouting
Routing_Produ
ctID
PK_WorkOrder
Routing_Work
WorkOrderRouting
OrderID_Produ
ctID_Operation
Sequence
PK_WorkOrder
Routing_Work
WorkOrderRouting
OrderID_Produ
ctID_Operation
Sequence
PK_WorkOrder
Routing_Work
WorkOrderRouting
OrderID_Produ
ctID_Operation
Sequence
xml_index_nodes_12695795 PXML_Individu
al_Demographi
61_32000
cs
xml_index_nodes_12695795 PXML_Individu
al_Demographi
61_32000
cs
WorkOrder

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal
true

false

false

false

false

false

false

false

false

false

false

false

false

false

false

false

false

false

WorkOrder CLUSTER
ID
ED

true

true

false

false

false

false

ProductID NONCLUS
TERED

false

false

false

false

false

false

WorkOrder CLUSTER
ID
ED

true

true

false

false

false

false

ProductID CLUSTER
ED

true

true

false

false

false

false

OperationS CLUSTER
equence
ED

true

true

false

false

false

false

id

CLUSTER
ED

true

false

false

false

false

false

pk1

CLUSTER
ED

true

false

false

false

false

false

Table Name

Index Name

Column
Name

Index
Type

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal

xml_index_nodes_12695795 XMLPATH_Indi
vidual_Demogr hid
61_32000
aphics
xml_index_nodes_12695795 XMLPATH_Indi
vidual_Demogr value
61_32000
aphics

NONCLUS
TERED

false

false

false

false

false

false

NONCLUS
TERED

false

false

false

false

false

false

xml_index_nodes_12695795 XMLPROPERT
Y_Individual_D pk1
61_32000
emographics
xml_index_nodes_12695795 XMLPROPERT
Y_Individual_D hid
61_32000
emographics

NONCLUS
TERED

false

false

false

false

false

false

NONCLUS
TERED

false

false

false

false

false

false

xml_index_nodes_12695795 XMLPROPERT
Y_Individual_D value
61_32000
emographics
xml_index_nodes_12695795 XMLVALUE_In
dividual_Demo value
61_32000
graphics

NONCLUS
TERED

false

false

false

false

false

false

NONCLUS
TERED

false

false

false

false

false

false

xml_index_nodes_12695795 XMLVALUE_In
dividual_Demo hid
61_32000
graphics
xml_index_nodes_20215822 PXML_Product
Model_Catalog id
40_32000
Description

NONCLUS
TERED

false

false

false

false

false

false

CLUSTER
ED

true

false

false

false

false

false

xml_index_nodes_20215822 PXML_Product
Model_Catalog pk1
40_32000
Description
xml_index_nodes_20215822 PXML_Product
Model_Instructi id
40_32001
ons

CLUSTER
ED

true

false

false

false

false

false

CLUSTER
ED

true

false

false

false

false

false

xml_index_nodes_20215822 PXML_Product
Model_Instructi pk1
40_32001
ons
xml_index_nodes_21301066 PXML_Store_ id
29_32000
Demographics

CLUSTER
ED

true

false

false

false

false

false

CLUSTER
ED

true

false

false

false

false

false

Table Name
xml_index_nodes_21301066
29_32000
xml_index_nodes_30957614
1_32000
xml_index_nodes_30957614
1_32000

Index Name

Column
Name

PXML_Store_ pk1
Demographics
PXML_Contact id
_AddContact
PXML_Contact pk1
_AddContact

Index
Type
CLUSTER
ED
CLUSTER
ED
CLUSTER
ED

Is
Is Unique
Is
Is Unique Is Primary
Is
Padded
Hypotheti
Key
Constraint Disabled
cal
true

false

false

false

false

false

true

false

false

false

false

false

true

false

false

false

false

false

Triggers
Name

Trigger Schema

dEmployee

HumanResources

iWorkOrder

Production

uWorkOrder

Production

iPurchaseOrderDetail

Purchasing

uPurchaseOrderDetail

Purchasing

uPurchaseOrderHeader

Purchasing

dVendor

Purchasing

iduSalesOrderDetail

Sales

uSalesOrderHeader

Sales

iStore

Sales

iuIndividual

Sales

dEmployee
Trigger Body

Text
CREATE TRIGGER [HumanResources].[dEmployee] ON [HumanResources].[Employee]
INSTEAD OF DELETE NOT FOR REPLICATION AS
BEGIN
DECLARE @Count int;
SET @Count = @@ROWCOUNT;
IF @Count = 0
RETURN;
SET NOCOUNT ON;
BEGIN
RAISERROR
(N'Employees cannot be deleted. They can only be marked as not current.', -- Message
10, -- Severity.
1); -- State.
-- Rollback any active or uncommittable transactions
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRANSACTION;
END
END;
END;

Dependent Objects
---None---

iWorkOrder
Trigger Body
Text
CREATE TRIGGER [Production].[iWorkOrder] ON [Production].[WorkOrder]
AFTER INSERT AS
BEGIN
DECLARE @Count int;
SET @Count = @@ROWCOUNT;
IF @Count = 0
RETURN;
SET NOCOUNT ON;
BEGIN TRY
INSERT INTO [Production].[TransactionHistory](
[ProductID]
,[ReferenceOrderID]

Text
,[TransactionType]
,[TransactionDate]
,[Quantity]
,[ActualCost])
SELECT
inserted.[ProductID]
,inserted.[WorkOrderID]
,'W'
,GETDATE()
,inserted.[OrderQty]
,0
FROM inserted;
END TRY
BEGIN CATCH
EXECUTE [dbo].[uspPrintError];
-- Rollback any active or uncommittable transactions before
-- inserting information in the ErrorLog
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRANSACTION;
END
EXECUTE [dbo].[uspLogError];
END CATCH;

Text
END;

Dependent Objects
Dependent Obj

Dependent Obj Type

uspLogError

SQL_STORED_PROCEDURE

uspPrintError

SQL_STORED_PROCEDURE

TransactionHistory

USER_TABLE

uWorkOrder
Trigger Body
Text
CREATE TRIGGER [Production].[uWorkOrder] ON [Production].[WorkOrder]
AFTER UPDATE AS
BEGIN
DECLARE @Count int;
SET @Count = @@ROWCOUNT;
IF @Count = 0
RETURN;
SET NOCOUNT ON;

Text
BEGIN TRY
IF UPDATE([ProductID]) OR UPDATE([OrderQty])
BEGIN
INSERT INTO [Production].[TransactionHistory](
[ProductID]
,[ReferenceOrderID]
,[TransactionType]
,[TransactionDate]
,[Quantity])
SELECT
inserted.[ProductID]
,inserted.[WorkOrderID]
,'W'
,GETDATE()
,inserted.[OrderQty]
FROM inserted;
END;
END TRY
BEGIN CATCH
EXECUTE [dbo].[uspPrintError];
-- Rollback any active or uncommittable transactions before
-- inserting information in the ErrorLog
IF @@TRANCOUNT > 0

Text
BEGIN
ROLLBACK TRANSACTION;
END
EXECUTE [dbo].[uspLogError];
END CATCH;
END;

Dependent Objects
Dependent Obj

Dependent Obj Type

uspLogError

SQL_STORED_PROCEDURE

uspPrintError

SQL_STORED_PROCEDURE

TransactionHistory

USER_TABLE

WorkOrder

USER_TABLE

iPurchaseOrderDetail
Trigger Body
Text
CREATE TRIGGER [Purchasing].[iPurchaseOrderDetail] ON [Purchasing].[PurchaseOrderDetail]
AFTER INSERT AS
BEGIN

Text
DECLARE @Count int;
SET @Count = @@ROWCOUNT;
IF @Count = 0
RETURN;
SET NOCOUNT ON;
BEGIN TRY
INSERT INTO [Production].[TransactionHistory]
([ProductID]
,[ReferenceOrderID]
,[ReferenceOrderLineID]
,[TransactionType]
,[TransactionDate]
,[Quantity]
,[ActualCost])
SELECT
inserted.[ProductID]
,inserted.[PurchaseOrderID]
,inserted.[PurchaseOrderDetailID]
,'P'
,GETDATE()
,inserted.[OrderQty]
,inserted.[UnitPrice]

Text
FROM inserted
INNER JOIN [Purchasing].[PurchaseOrderHeader]
ON inserted.[PurchaseOrderID] = [Purchasing].[PurchaseOrderHeader].[PurchaseOrderID];
-- Update SubTotal in PurchaseOrderHeader record. Note that this causes the
-- PurchaseOrderHeader trigger to fire which will update the RevisionNumber.
UPDATE [Purchasing].[PurchaseOrderHeader]
SET [Purchasing].[PurchaseOrderHeader].[SubTotal] =
(SELECT SUM([Purchasing].[PurchaseOrderDetail].[LineTotal])
FROM [Purchasing].[PurchaseOrderDetail]
WHERE [Purchasing].[PurchaseOrderHeader].[PurchaseOrderID] = [Purchasing].[PurchaseOrderDetail].[PurchaseOrderID])
WHERE [Purchasing].[PurchaseOrderHeader].[PurchaseOrderID] IN (SELECT inserted.[PurchaseOrderID] FROM inserted);
END TRY
BEGIN CATCH
EXECUTE [dbo].[uspPrintError];
-- Rollback any active or uncommittable transactions before
-- inserting information in the ErrorLog
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRANSACTION;
END
EXECUTE [dbo].[uspLogError];
END CATCH;

Text
END;

Dependent Objects
Dependent Obj

Dependent Obj Type

uspLogError

SQL_STORED_PROCEDURE

uspPrintError

SQL_STORED_PROCEDURE

PurchaseOrderDetail

USER_TABLE

PurchaseOrderHeader

USER_TABLE

TransactionHistory

USER_TABLE

uPurchaseOrderDetail
Trigger Body
Text
CREATE TRIGGER [Purchasing].[uPurchaseOrderDetail] ON [Purchasing].[PurchaseOrderDetail]
AFTER UPDATE AS
BEGIN
DECLARE @Count int;
SET @Count = @@ROWCOUNT;
IF @Count = 0
RETURN;

Text
SET NOCOUNT ON;
BEGIN TRY
IF UPDATE([ProductID]) OR UPDATE([OrderQty]) OR UPDATE([UnitPrice])
-- Insert record into TransactionHistory
BEGIN
INSERT INTO [Production].[TransactionHistory]
([ProductID]
,[ReferenceOrderID]
,[ReferenceOrderLineID]
,[TransactionType]
,[TransactionDate]
,[Quantity]
,[ActualCost])
SELECT
inserted.[ProductID]
,inserted.[PurchaseOrderID]
,inserted.[PurchaseOrderDetailID]
,'P'
,GETDATE()
,inserted.[OrderQty]
,inserted.[UnitPrice]
FROM inserted
INNER JOIN [Purchasing].[PurchaseOrderDetail]

Text
ON inserted.[PurchaseOrderID] = [Purchasing].[PurchaseOrderDetail].[PurchaseOrderID];
-- Update SubTotal in PurchaseOrderHeader record. Note that this causes the
-- PurchaseOrderHeader trigger to fire which will update the RevisionNumber.
UPDATE [Purchasing].[PurchaseOrderHeader]
SET [Purchasing].[PurchaseOrderHeader].[SubTotal] =
(SELECT SUM([Purchasing].[PurchaseOrderDetail].[LineTotal])
FROM [Purchasing].[PurchaseOrderDetail]
WHERE [Purchasing].[PurchaseOrderHeader].[PurchaseOrderID]
= [Purchasing].[PurchaseOrderDetail].[PurchaseOrderID])
WHERE [Purchasing].[PurchaseOrderHeader].[PurchaseOrderID]
IN (SELECT inserted.[PurchaseOrderID] FROM inserted);
UPDATE [Purchasing].[PurchaseOrderDetail]
SET [Purchasing].[PurchaseOrderDetail].[ModifiedDate] = GETDATE()
FROM inserted
WHERE inserted.[PurchaseOrderID] = [Purchasing].[PurchaseOrderDetail].[PurchaseOrderID]
AND inserted.[PurchaseOrderDetailID] = [Purchasing].[PurchaseOrderDetail].[PurchaseOrderDetailID];
END;
END TRY
BEGIN CATCH
EXECUTE [dbo].[uspPrintError];
-- Rollback any active or uncommittable transactions before
-- inserting information in the ErrorLog

Text
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRANSACTION;
END
EXECUTE [dbo].[uspLogError];
END CATCH;
END;

Dependent Objects
Dependent Obj

Dependent Obj Type

uspLogError

SQL_STORED_PROCEDURE

uspPrintError

SQL_STORED_PROCEDURE

PurchaseOrderDetail

USER_TABLE

PurchaseOrderHeader

USER_TABLE

TransactionHistory

USER_TABLE

uPurchaseOrderHeader
Trigger Body
Text
CREATE TRIGGER [Purchasing].[uPurchaseOrderHeader] ON [Purchasing].[PurchaseOrderHeader]

Text
AFTER UPDATE AS
BEGIN
DECLARE @Count int;
SET @Count = @@ROWCOUNT;
IF @Count = 0
RETURN;
SET NOCOUNT ON;
BEGIN TRY
-- Update RevisionNumber for modification of any field EXCEPT the Status.
IF NOT UPDATE([Status])
BEGIN
UPDATE [Purchasing].[PurchaseOrderHeader]
SET [Purchasing].[PurchaseOrderHeader].[RevisionNumber] =
[Purchasing].[PurchaseOrderHeader].[RevisionNumber] + 1
WHERE [Purchasing].[PurchaseOrderHeader].[PurchaseOrderID] IN
(SELECT inserted.[PurchaseOrderID] FROM inserted);
END;
END TRY
BEGIN CATCH
EXECUTE [dbo].[uspPrintError];
-- Rollback any active or uncommittable transactions before

Text
-- inserting information in the ErrorLog
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRANSACTION;
END
EXECUTE [dbo].[uspLogError];
END CATCH;
END;

Dependent Objects
Dependent Obj

Dependent Obj Type

uspLogError

SQL_STORED_PROCEDURE

uspPrintError

SQL_STORED_PROCEDURE

PurchaseOrderHeader

USER_TABLE

dVendor
Trigger Body
Text
CREATE TRIGGER [Purchasing].[dVendor] ON [Purchasing].[Vendor]
INSTEAD OF DELETE NOT FOR REPLICATION AS

Text
BEGIN
DECLARE @Count int;
SET @Count = @@ROWCOUNT;
IF @Count = 0
RETURN;
SET NOCOUNT ON;
BEGIN TRY
DECLARE @DeleteCount int;
SELECT @DeleteCount = COUNT(*) FROM deleted;
IF @DeleteCount > 0
BEGIN
RAISERROR
(N'Vendors cannot be deleted. They can only be marked as not active.', -- Message
10, -- Severity.
1); -- State.
-- Rollback any active or uncommittable transactions
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRANSACTION;
END

Text
END;
END TRY
BEGIN CATCH
EXECUTE [dbo].[uspPrintError];
-- Rollback any active or uncommittable transactions before
-- inserting information in the ErrorLog
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRANSACTION;
END
EXECUTE [dbo].[uspLogError];
END CATCH;
END;

Dependent Objects
Dependent Obj

Dependent Obj Type

uspLogError

SQL_STORED_PROCEDURE

uspPrintError

SQL_STORED_PROCEDURE

iduSalesOrderDetail
Trigger Body
Text
CREATE TRIGGER [Sales].[iduSalesOrderDetail] ON [Sales].[SalesOrderDetail]
AFTER INSERT, DELETE, UPDATE AS
BEGIN
DECLARE @Count int;
SET @Count = @@ROWCOUNT;
IF @Count = 0
RETURN;
SET NOCOUNT ON;
BEGIN TRY
-- If inserting or updating these columns
IF UPDATE([ProductID]) OR UPDATE([OrderQty]) OR UPDATE([UnitPrice]) OR UPDATE([UnitPriceDiscount])
-- Insert record into TransactionHistory
BEGIN
INSERT INTO [Production].[TransactionHistory]
([ProductID]
,[ReferenceOrderID]
,[ReferenceOrderLineID]
,[TransactionType]
,[TransactionDate]

Text
,[Quantity]
,[ActualCost])
SELECT
inserted.[ProductID]
,inserted.[SalesOrderID]
,inserted.[SalesOrderDetailID]
,'S'
,GETDATE()
,inserted.[OrderQty]
,inserted.[UnitPrice]
FROM inserted
INNER JOIN [Sales].[SalesOrderHeader]
ON inserted.[SalesOrderID] = [Sales].[SalesOrderHeader].[SalesOrderID];
UPDATE [Sales].[Individual]
SET [Demographics].modify('declare default element namespace
"http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey";
replace value of (/IndividualSurvey/TotalPurchaseYTD)[1]
with data(/IndividualSurvey/TotalPurchaseYTD)[1] + sql:column ("inserted.LineTotal")')
FROM inserted
INNER JOIN [Sales].[SalesOrderHeader]
ON inserted.[SalesOrderID] = [Sales].[SalesOrderHeader].[SalesOrderID]
WHERE [Sales].[SalesOrderHeader].[CustomerID] = [Sales].[Individual].[CustomerID];
END;

Text
-- Update SubTotal in SalesOrderHeader record. Note that this causes the
-- SalesOrderHeader trigger to fire which will update the RevisionNumber.
UPDATE [Sales].[SalesOrderHeader]
SET [Sales].[SalesOrderHeader].[SubTotal] =
(SELECT SUM([Sales].[SalesOrderDetail].[LineTotal])
FROM [Sales].[SalesOrderDetail]
WHERE [Sales].[SalesOrderHeader].[SalesOrderID] = [Sales].[SalesOrderDetail].[SalesOrderID])
WHERE [Sales].[SalesOrderHeader].[SalesOrderID] IN (SELECT inserted.[SalesOrderID] FROM inserted);
UPDATE [Sales].[Individual]
SET [Demographics].modify('declare default element namespace
"http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey";
replace value of (/IndividualSurvey/TotalPurchaseYTD)[1]
with data(/IndividualSurvey/TotalPurchaseYTD)[1] - sql:column("deleted.LineTotal")')
FROM deleted
INNER JOIN [Sales].[SalesOrderHeader]
ON deleted.[SalesOrderID] = [Sales].[SalesOrderHeader].[SalesOrderID]
WHERE [Sales].[SalesOrderHeader].[CustomerID] = [Sales].[Individual].[CustomerID];
END TRY
BEGIN CATCH
EXECUTE [dbo].[uspPrintError];
-- Rollback any active or uncommittable transactions before
-- inserting information in the ErrorLog
IF @@TRANCOUNT > 0

Text
BEGIN
ROLLBACK TRANSACTION;
END
EXECUTE [dbo].[uspLogError];
END CATCH;
END;

Dependent Objects
Dependent Obj

Dependent Obj Type

uspLogError

SQL_STORED_PROCEDURE

uspPrintError

SQL_STORED_PROCEDURE

Individual

USER_TABLE

SalesOrderDetail

USER_TABLE

SalesOrderHeader

USER_TABLE

TransactionHistory

USER_TABLE

uSalesOrderHeader
Trigger Body
Text
CREATE TRIGGER [Sales].[uSalesOrderHeader] ON [Sales].[SalesOrderHeader]

Text
AFTER UPDATE NOT FOR REPLICATION AS
BEGIN
DECLARE @Count int;
SET @Count = @@ROWCOUNT;
IF @Count = 0
RETURN;
SET NOCOUNT ON;
BEGIN TRY
-- Update RevisionNumber for modification of any field EXCEPT the Status.
IF NOT UPDATE([Status])
BEGIN
UPDATE [Sales].[SalesOrderHeader]
SET [Sales].[SalesOrderHeader].[RevisionNumber] =
[Sales].[SalesOrderHeader].[RevisionNumber] + 1
WHERE [Sales].[SalesOrderHeader].[SalesOrderID] IN
(SELECT inserted.[SalesOrderID] FROM inserted);
END;
-- Update the SalesPerson SalesYTD when SubTotal is updated
IF UPDATE([SubTotal])
BEGIN
DECLARE @StartDate datetime,

Text
@EndDate datetime
SET @StartDate = [dbo].[ufnGetAccountingStartDate]();
SET @EndDate = [dbo].[ufnGetAccountingEndDate]();
UPDATE [Sales].[SalesPerson]
SET [Sales].[SalesPerson].[SalesYTD] =
(SELECT SUM([Sales].[SalesOrderHeader].[SubTotal])
FROM [Sales].[SalesOrderHeader]
WHERE [Sales].[SalesPerson].[SalesPersonID] = [Sales].[SalesOrderHeader].[SalesPersonID]
AND ([Sales].[SalesOrderHeader].[Status] = 5) -- Shipped
AND [Sales].[SalesOrderHeader].[OrderDate] BETWEEN @StartDate AND @EndDate)
WHERE [Sales].[SalesPerson].[SalesPersonID]
IN (SELECT DISTINCT inserted.[SalesPersonID] FROM inserted
WHERE inserted.[OrderDate] BETWEEN @StartDate AND @EndDate);
-- Update the SalesTerritory SalesYTD when SubTotal is updated
UPDATE [Sales].[SalesTerritory]
SET [Sales].[SalesTerritory].[SalesYTD] =
(SELECT SUM([Sales].[SalesOrderHeader].[SubTotal])
FROM [Sales].[SalesOrderHeader]
WHERE [Sales].[SalesTerritory].[TerritoryID] = [Sales].[SalesOrderHeader].[TerritoryID]
AND ([Sales].[SalesOrderHeader].[Status] = 5) -- Shipped
AND [Sales].[SalesOrderHeader].[OrderDate] BETWEEN @StartDate AND @EndDate)
WHERE [Sales].[SalesTerritory].[TerritoryID]

Text
IN (SELECT DISTINCT inserted.[TerritoryID] FROM inserted
WHERE inserted.[OrderDate] BETWEEN @StartDate AND @EndDate);
END;
END TRY
BEGIN CATCH
EXECUTE [dbo].[uspPrintError];
-- Rollback any active or uncommittable transactions before
-- inserting information in the ErrorLog
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRANSACTION;
END
EXECUTE [dbo].[uspLogError];
END CATCH;
END;

Dependent Objects
Dependent Obj

Dependent Obj Type

uspLogError

SQL_STORED_PROCEDURE

uspPrintError

SQL_STORED_PROCEDURE

SalesOrderHeader

USER_TABLE

Dependent Obj

Dependent Obj Type

SalesPerson

USER_TABLE

SalesTerritory

USER_TABLE

iStore
Trigger Body
Text
CREATE TRIGGER [Sales].[iStore] ON [Sales].[Store]
AFTER INSERT AS
BEGIN
DECLARE @Count int;
SET @Count = @@ROWCOUNT;
IF @Count = 0
RETURN;
SET NOCOUNT ON;
BEGIN TRY
-- Only allow the Customer to be a Store OR Individual
IF EXISTS (SELECT * FROM inserted INNER JOIN [Sales].[Individual]
ON inserted.[CustomerID] = [Sales].[Individual].[CustomerID])
BEGIN

Text
-- Rollback any active or uncommittable transactions
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRANSACTION;
END
END;
END TRY
BEGIN CATCH
EXECUTE [dbo].[uspPrintError];
-- Rollback any active or uncommittable transactions before
-- inserting information in the ErrorLog
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRANSACTION;
END
EXECUTE [dbo].[uspLogError];
END CATCH;
END;

Dependent Objects

Dependent Obj

Dependent Obj Type

uspLogError

SQL_STORED_PROCEDURE

uspPrintError

SQL_STORED_PROCEDURE

Individual

USER_TABLE

iuIndividual
Trigger Body
Text
CREATE TRIGGER [Sales].[iuIndividual] ON [Sales].[Individual]
AFTER INSERT, UPDATE NOT FOR REPLICATION AS
BEGIN
DECLARE @Count int;
SET @Count = @@ROWCOUNT;
IF @Count = 0
RETURN;
SET NOCOUNT ON;
-- Only allow the Customer to be a Store OR Individual
IF EXISTS (SELECT * FROM inserted INNER JOIN [Sales].[Store]
ON inserted.[CustomerID] = [Sales].[Store].[CustomerID])
BEGIN

Text
-- Rollback any active or uncommittable transactions
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRANSACTION;
END
END;
IF UPDATE([CustomerID]) OR UPDATE([Demographics])
BEGIN
UPDATE [Sales].[Individual]
SET [Sales].[Individual].[Demographics] = N'<IndividualSurvey xmlns="http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/IndividualSurvey">
<TotalPurchaseYTD>0.00</TotalPurchaseYTD>
</IndividualSurvey>'
FROM inserted
WHERE [Sales].[Individual].[CustomerID] = inserted.[CustomerID]
AND inserted.[Demographics] IS NULL;
UPDATE [Sales].[Individual]
SET [Demographics].modify(N'declare default element namespace "http://schemas.microsoft.com/sqlserver/2004/07/adventureworks/IndividualSurvey";
insert <TotalPurchaseYTD>0.00</TotalPurchaseYTD>
as first
into (/IndividualSurvey)[1]')
FROM inserted
WHERE [Sales].[Individual].[CustomerID] = inserted.[CustomerID]

Text
AND inserted.[Demographics] IS NOT NULL
AND inserted.[Demographics].exist(N'declare default element namespace
"http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey";
/IndividualSurvey/TotalPurchaseYTD') <> 1;
END;
END;

Dependent Objects
Dependent Obj

Dependent Obj Type

Individual

USER_TABLE

Store

USER_TABLE

Dashboards

You might also like