Difference between revisions of "Sales.Individual (table)"
(One intermediate revision by the same user not shown) | |||
Line 2: | Line 2: | ||
{| border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse" | {| border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse" | ||
− | |- | + | |- valign="top" |
| '''Table | | '''Table | ||
| Sales.Individual | | Sales.Individual | ||
Line 8: | Line 8: | ||
| '''Description | | '''Description | ||
| Demographic data about customers that purchase Adventure Works products online. | | Demographic data about customers that purchase Adventure Works products online. | ||
− | |||
|} | |} | ||
− | + | === Columns === | |
{| border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse" | {| border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse" | ||
|- style="background:silver" | |- style="background:silver" | ||
Line 18: | Line 17: | ||
| '''Nullable | | '''Nullable | ||
| '''Default | | '''Default | ||
− | | '''Description | + | | '''Description |
− | + | ||
|- valign="top" | |- valign="top" | ||
| CustomerID | | CustomerID | ||
Line 25: | Line 24: | ||
| not null | | not null | ||
| | | | ||
− | | Unique customer identification number. Foreign key to Customer.CustomerID. | + | | Unique customer identification number. Foreign key to Customer.CustomerID. |
|- valign="top" | |- valign="top" | ||
| ContactID | | ContactID | ||
Line 31: | Line 30: | ||
| not null | | not null | ||
| | | | ||
− | | Identifies the customer in the Contact table. Foreign key to Contact.ContactID. | + | | Identifies the customer in the Contact table. Foreign key to Contact.ContactID. |
|- valign="top" | |- valign="top" | ||
| Demographics | | Demographics | ||
Line 37: | Line 36: | ||
| null | | null | ||
| | | | ||
− | | Personal information such as hobbies, and income collected from online shoppers. Used for sales analysis. | + | | Personal information such as hobbies, and income collected from online shoppers. Used for sales analysis. |
|- valign="top" | |- valign="top" | ||
| ModifiedDate | | ModifiedDate | ||
Line 43: | Line 42: | ||
| not null | | not null | ||
| (getdate()) | | (getdate()) | ||
− | | Date and time the record was last updated. | + | | Date and time the record was last updated. |
|} | |} | ||
+ | === Primary Key === | ||
+ | {| border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse" | ||
+ | |- style="background:silver" | ||
+ | | '''Primary Key | ||
+ | | '''Columns | ||
+ | |- valign="top" | ||
+ | | PK_Individual_CustomerID | ||
+ | | CustomerID | ||
+ | |} | ||
+ | |||
+ | === Indexes === | ||
+ | {| border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse" | ||
+ | |- style="background:silver" | ||
+ | | '''Index | ||
+ | | '''Type | ||
+ | | '''Columns | ||
+ | |- valign="top" | ||
+ | | PXML_Individual_Demographics | ||
+ | | | ||
+ | | Demographics | ||
+ | |- valign="top" | ||
+ | | XMLPATH_Individual_Demographics | ||
+ | | | ||
+ | | Demographics | ||
+ | |- valign="top" | ||
+ | | XMLPROPERTY_Individual_Demographics | ||
+ | | | ||
+ | | Demographics | ||
+ | |- valign="top" | ||
+ | | XMLVALUE_Individual_Demographics | ||
+ | | | ||
+ | | Demographics | ||
+ | |} | ||
+ | === Foreign Keys === | ||
{| border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse" | {| border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse" | ||
|- style="background:silver" | |- style="background:silver" | ||
Line 53: | Line 86: | ||
| '''Column | | '''Column | ||
| '''Referenced Column | | '''Referenced Column | ||
− | + | ||
− | |- | + | |- valign="top" |
| [[Person.Contact_(table)|Person.Contact]] | | [[Person.Contact_(table)|Person.Contact]] | ||
| ContactID | | ContactID | ||
| ContactID | | ContactID | ||
− | |- | + | |- valign="top" |
| [[Sales.Customer_(table)|Sales.Customer]] | | [[Sales.Customer_(table)|Sales.Customer]] | ||
| CustomerID | | CustomerID | ||
Line 64: | Line 97: | ||
|} | |} | ||
− | + | === Triggers === | |
{| border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse" | {| border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse" | ||
|- style="background:silver" | |- style="background:silver" | ||
− | | ''' | + | | '''Trigger |
| '''Type | | '''Type | ||
− | + | ||
− | |- | + | |- valign="top" |
| iuIndividual | | iuIndividual | ||
| ON INSERT UPDATE | | ON INSERT UPDATE | ||
|} | |} | ||
+ | ==== Trigger iuIndividual ==== | ||
+ | <pre> | ||
+ | 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 | ||
+ | -- 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/adventure-works/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/adventure-works/IndividualSurvey"; | ||
+ | insert <TotalPurchaseYTD>0.00</TotalPurchaseYTD> | ||
+ | as first | ||
+ | into (/IndividualSurvey)[1]') | ||
+ | FROM inserted | ||
+ | WHERE [Sales].[Individual].[CustomerID] = inserted.[CustomerID] | ||
+ | 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; | ||
+ | </pre> | ||
+ | |||
+ | === References === | ||
{| border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse" | {| border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse" | ||
|- style="background:silver" | |- style="background:silver" | ||
Line 85: | Line 167: | ||
| '''Child Object | | '''Child Object | ||
− | |- | + | |- valign="top" |
+ | | Schema | ||
+ | | Schema | ||
+ | | [[Sales_(schema)|Sales]] | ||
+ | |||
+ | | | ||
+ | | | ||
+ | |- valign="top" | ||
| Data Type | | Data Type | ||
| XML Schema Collection | | XML Schema Collection | ||
− | | [[Sales.IndividualSurveySchemaCollection_( | + | | [[Sales.IndividualSurveySchemaCollection_(xml schema collection)|Sales.IndividualSurveySchemaCollection]] |
| | | | ||
| | | | ||
− | |- | + | |- valign="top" |
| Update | | Update | ||
| Table | | Table | ||
Line 99: | Line 188: | ||
| Trigger | | Trigger | ||
| iuIndividual | | iuIndividual | ||
− | |- | + | |- valign="top" |
| Select | | Select | ||
| Table | | Table | ||
Line 108: | Line 197: | ||
|} | |} | ||
− | + | === Dependencies === | |
{| border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse" | {| border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse" | ||
|- style="background:silver" | |- style="background:silver" | ||
Line 118: | Line 207: | ||
| '''Child Object | | '''Child Object | ||
− | |- | + | |- valign="top" |
| Select | | Select | ||
| View | | View | ||
Line 125: | Line 214: | ||
| | | | ||
| | | | ||
− | |- | + | |- valign="top" |
| Select | | Select | ||
| View | | View | ||
Line 132: | Line 221: | ||
| | | | ||
| | | | ||
− | |- | + | |- valign="top" |
| Select | | Select | ||
| SQL table-valued-function | | SQL table-valued-function | ||
Line 139: | Line 228: | ||
| | | | ||
| | | | ||
− | |- | + | |- valign="top" |
| Update | | Update | ||
| Table | | Table | ||
Line 146: | Line 235: | ||
| Trigger | | Trigger | ||
| iuIndividual | | iuIndividual | ||
− | |- | + | |- valign="top" |
| Update | | Update | ||
| Table | | Table | ||
Line 153: | Line 242: | ||
| Trigger | | Trigger | ||
| iduSalesOrderDetail | | iduSalesOrderDetail | ||
− | |- | + | |- valign="top" |
| Select | | Select | ||
| Table | | Table | ||
Line 161: | Line 250: | ||
| iStore | | iStore | ||
|} | |} | ||
− | |||
Latest revision as of 23:17, 23 June 2010
Contents
wikibot[edit]
Table | Sales.Individual |
Description | Demographic data about customers that purchase Adventure Works products online. |
Columns[edit]
Column | Data Type | Nullable | Default | Description |
CustomerID | int | not null | Unique customer identification number. Foreign key to Customer.CustomerID. | |
ContactID | int | not null | Identifies the customer in the Contact table. Foreign key to Contact.ContactID. | |
Demographics | xml | null | Personal information such as hobbies, and income collected from online shoppers. Used for sales analysis. | |
ModifiedDate | datetime | not null | (getdate()) | Date and time the record was last updated. |
Primary Key[edit]
Primary Key | Columns |
PK_Individual_CustomerID | CustomerID |
Indexes[edit]
Index | Type | Columns |
PXML_Individual_Demographics | Demographics | |
XMLPATH_Individual_Demographics | Demographics | |
XMLPROPERTY_Individual_Demographics | Demographics | |
XMLVALUE_Individual_Demographics | Demographics |
Foreign Keys[edit]
Relation | Column | Referenced Column |
Person.Contact | ContactID | ContactID |
Sales.Customer | CustomerID | CustomerID |
Triggers[edit]
Trigger | Type |
iuIndividual | ON INSERT UPDATE |
Trigger iuIndividual[edit]
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 -- 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/adventure-works/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/adventure-works/IndividualSurvey"; insert <TotalPurchaseYTD>0.00</TotalPurchaseYTD> as first into (/IndividualSurvey)[1]') FROM inserted WHERE [Sales].[Individual].[CustomerID] = inserted.[CustomerID] 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;
References[edit]
Dependency Type | Object Type | Referenced Object | Child Type | Child Object |
Schema | Schema | Sales | ||
Data Type | XML Schema Collection | Sales.IndividualSurveySchemaCollection | ||
Update | Table | Sales.Individual | Trigger | iuIndividual |
Select | Table | Sales.Store | Trigger | iuIndividual |
Dependencies[edit]
Reference Type | Object Type | Referencing Object | Child Type | Child Object |
Select | View | Sales.vIndividualCustomer | ||
Select | View | Sales.vIndividualDemographics | ||
Select | SQL table-valued-function | dbo.ufnGetContactInformation | ||
Update | Table | Sales.Individual | Trigger | iuIndividual |
Update | Table | Sales.SalesOrderDetail | Trigger | iduSalesOrderDetail |
Select | Table | Sales.Store | Trigger | iStore |
automatically generated[edit]
Table | Sales.Individual |
Description | Demographic data about customers that purchase Adventure Works products online. |
Column | Data Type | Nullable | Default | Description / PK / Index |
CustomerID | int | not null | Unique customer identification number. Foreign key to Customer.CustomerID. PK_Individual_CustomerID | |
ContactID | int | not null | Identifies the customer in the Contact table. Foreign key to Contact.ContactID. | |
Demographics | XML | null | Personal information such as hobbies, and income collected from online shoppers. Used for sales analysis. PXML_Individual_DemographicsXMLPATH_Individual_DemographicsXMLPROPERTY_Individual_DemographicsXMLVALUE_Individual_Demographics | |
ModifiedDate | datetime | not null | (GETDATE()) | Date and time the record was last updated. |
Relation | Column | Referenced Column |
Person.Contact | ContactID | ContactID |
Sales.Customer | CustomerID | CustomerID |
Triggers | Type |
iuIndividual | ON INSERT UPDATE |
Dependency Type | Object Type | Referenced Object | Child Type | Child Object |
Schema | Schema | Sales | ||
Data Type | XML Schema Collection | Sales.IndividualSurveySchemaCollection | ||
Update | Table | Sales.Individual | Trigger | iuIndividual |
Select | Table | Sales.Store | Trigger | iuIndividual |
Reference Type | Object Type | Referencing Object | Child Type | Child Object |
Select | View | Sales.vIndividualCustomer | ||
Select | View | Sales.vIndividualDemographics | ||
Select | SQL table-valued-function | dbo.ufnGetContactInformation | ||
Update | Table | Sales.Individual | Trigger | iuIndividual |
Update | Table | Sales.SalesOrderDetail | Trigger | iduSalesOrderDetail |
Select | Table | Sales.Store | Trigger | iStore |