Difference between revisions of "Sales.SalesOrderDetail (table)"

From dbscript Online Help
Jump to: navigation, search
 
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.SalesOrderDetail
 
| Sales.SalesOrderDetail
Line 8: Line 8:
 
| '''Description
 
| '''Description
 
| Individual products associated with a specific sales order. See SalesOrderHeader.
 
| Individual products associated with a specific sales order. See SalesOrderHeader.
|-
 
 
|}
 
|}
 
  
 
=== Columns ===
 
=== Columns ===
Line 20: Line 18:
 
| '''Default
 
| '''Default
 
| '''Description
 
| '''Description
+
 
 
|- valign="top"
 
|- valign="top"
 
| SalesOrderID
 
| SalesOrderID
Line 94: Line 92:
 
| '''Primary Key
 
| '''Primary Key
 
| '''Columns
 
| '''Columns
|-
+
|- valign="top"
 
| PK_SalesOrderDetail_SalesOrderID_SalesOrderDetailID
 
| PK_SalesOrderDetail_SalesOrderID_SalesOrderDetailID
 
| SalesOrderID, SalesOrderDetailID
 
| SalesOrderID, SalesOrderDetailID
Line 105: Line 103:
 
| '''Type
 
| '''Type
 
| '''Columns
 
| '''Columns
+
 
|-
+
|- valign="top"
 
| AK_SalesOrderDetail_rowguid
 
| AK_SalesOrderDetail_rowguid
 
| Unique
 
| Unique
 
| rowguid
 
| rowguid
|-
+
|- valign="top"
 
| IX_SalesOrderDetail_ProductID
 
| IX_SalesOrderDetail_ProductID
 
|  
 
|  
Line 122: Line 120:
 
| '''Expression
 
| '''Expression
 
| '''Description
 
| '''Description
+
 
|-
+
|- valign="top"
 
| CK_SalesOrderDetail_OrderQty
 
| CK_SalesOrderDetail_OrderQty
 
| ([OrderQty]>(0))
 
| ([OrderQty]>(0))
 
| Check constraint [OrderQty] > (0)
 
| Check constraint [OrderQty] > (0)
|-
+
|- valign="top"
 
| CK_SalesOrderDetail_UnitPrice
 
| CK_SalesOrderDetail_UnitPrice
 
| ([UnitPrice]>=(0.00))
 
| ([UnitPrice]>=(0.00))
 
| Check constraint [UnitPrice] >= (0.00)
 
| Check constraint [UnitPrice] >= (0.00)
|-
+
|- valign="top"
 
| CK_SalesOrderDetail_UnitPriceDiscount
 
| CK_SalesOrderDetail_UnitPriceDiscount
 
| ([UnitPriceDiscount]>=(0.00))
 
| ([UnitPriceDiscount]>=(0.00))
Line 143: Line 141:
 
| '''Column
 
| '''Column
 
| '''Referenced Column
 
| '''Referenced Column
+
 
|-
+
|- valign="top"
 
| [[Sales.SalesOrderHeader_(table)|Sales.SalesOrderHeader]]
 
| [[Sales.SalesOrderHeader_(table)|Sales.SalesOrderHeader]]
 
| SalesOrderID
 
| SalesOrderID
 
| SalesOrderID
 
| SalesOrderID
|-
+
|- valign="top"
 
| [[Sales.SpecialOfferProduct_(table)|Sales.SpecialOfferProduct]]
 
| [[Sales.SpecialOfferProduct_(table)|Sales.SpecialOfferProduct]]
 
| SpecialOfferID
 
| SpecialOfferID
Line 157: Line 155:
 
{| 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"
| '''Triggers
+
| '''Trigger
 
| '''Type
 
| '''Type
+
 
|-
+
|- valign="top"
 
| iduSalesOrderDetail
 
| iduSalesOrderDetail
 
| ON INSERT UPDATE DELETE
 
| ON INSERT UPDATE DELETE
 
|}
 
|}
  
Trigger iduSalesOrderDetail
+
==== Trigger iduSalesOrderDetail ====
 
<pre>
 
<pre>
 
CREATE TRIGGER [Sales].[iduSalesOrderDetail] ON [Sales].[SalesOrderDetail]  
 
CREATE TRIGGER [Sales].[iduSalesOrderDetail] ON [Sales].[SalesOrderDetail]  
Line 247: Line 245:
 
END;
 
END;
 
</pre>
 
</pre>
+
 
 
=== References ===
 
=== References ===
 
{| border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse"
 
{| border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse"
Line 258: Line 256:
 
| '''Child Object
 
| '''Child Object
  
|-
+
|- valign="top"
 
| Schema
 
| Schema
 
| Schema
 
| Schema
Line 265: Line 263:
 
|  
 
|  
 
|  
 
|  
|-
+
|- valign="top"
 
| Insert
 
| Insert
 
| Table
 
| Table
Line 272: Line 270:
 
| Trigger
 
| Trigger
 
| iduSalesOrderDetail
 
| iduSalesOrderDetail
|-
+
|- valign="top"
 
| Update
 
| Update
 
| Table
 
| Table
Line 279: Line 277:
 
| Trigger
 
| Trigger
 
| iduSalesOrderDetail
 
| iduSalesOrderDetail
|-
+
|- valign="top"
 
| Select
 
| Select
 
| Table
 
| Table
Line 286: Line 284:
 
| Trigger
 
| Trigger
 
| iduSalesOrderDetail
 
| iduSalesOrderDetail
|-
+
|- valign="top"
 
| Select
 
| Select
 
| Table
 
| Table
Line 293: Line 291:
 
| Trigger
 
| Trigger
 
| iduSalesOrderDetail
 
| iduSalesOrderDetail
|-
+
|- valign="top"
 
| Update
 
| Update
 
| Table
 
| Table
Line 300: Line 298:
 
| Trigger
 
| Trigger
 
| iduSalesOrderDetail
 
| iduSalesOrderDetail
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Procedure
 
| Procedure
Line 307: Line 305:
 
| Trigger
 
| Trigger
 
| iduSalesOrderDetail
 
| iduSalesOrderDetail
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Procedure
 
| Procedure
Line 326: Line 324:
 
| '''Child Object
 
| '''Child Object
  
|-
+
|- valign="top"
 
| Select
 
| Select
 
| Table
 
| Table

Latest revision as of 00:17, 24 June 2010

wikibot[edit]

Table Sales.SalesOrderDetail
Description Individual products associated with a specific sales order. See SalesOrderHeader.

Columns[edit]

Column Data Type Nullable Default Description
SalesOrderID int not null Primary key. Foreign key to SalesOrderHeader.SalesOrderID.
SalesOrderDetailID int not null Primary key. One incremental unique number per product sold.
CarrierTrackingNumber nvarchar(25) null Shipment tracking number supplied by the shipper.
OrderQty smallint not null Quantity ordered per product.
ProductID int not null Product sold to customer. Foreign key to Product.ProductID.
SpecialOfferID int not null Promotional code. Foreign key to SpecialOffer.SpecialOfferID.
UnitPrice money not null Selling price of a single product.
UnitPriceDiscount money not null ((0.0)) Discount amount.
LineTotal Per product subtotal. Computed as UnitPrice * (1 - UnitPriceDiscount) * OrderQty.
rowguid uniqueidentifier not null (newid()) ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.
ModifiedDate datetime not null (getdate()) Date and time the record was last updated.

Primary Key[edit]

Primary Key Columns
PK_SalesOrderDetail_SalesOrderID_SalesOrderDetailID SalesOrderID, SalesOrderDetailID

Indexes[edit]

Index Type Columns
AK_SalesOrderDetail_rowguid Unique rowguid
IX_SalesOrderDetail_ProductID ProductID

Check Constraints[edit]

Check Constraint Expression Description
CK_SalesOrderDetail_OrderQty ([OrderQty]>(0)) Check constraint [OrderQty] > (0)
CK_SalesOrderDetail_UnitPrice ([UnitPrice]>=(0.00)) Check constraint [UnitPrice] >= (0.00)
CK_SalesOrderDetail_UnitPriceDiscount ([UnitPriceDiscount]>=(0.00)) Check constraint [UnitPriceDiscount] >= (0.00)

Foreign Keys[edit]

Relation Column Referenced Column
Sales.SalesOrderHeader SalesOrderID SalesOrderID
Sales.SpecialOfferProduct SpecialOfferID SpecialOfferID

Triggers[edit]

Trigger Type
iduSalesOrderDetail ON INSERT UPDATE DELETE

Trigger iduSalesOrderDetail[edit]

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]
                ,[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;

        -- 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
        BEGIN
            ROLLBACK TRANSACTION;
        END

        EXECUTE [dbo].[uspLogError];
    END CATCH;
END;

References[edit]

Dependency Type Object Type Referenced Object Child Type Child Object
Schema Schema Sales
Insert Table Production.TransactionHistory Trigger iduSalesOrderDetail
Update Table Sales.Individual Trigger iduSalesOrderDetail
Select Table Sales.SalesOrderDetail Trigger iduSalesOrderDetail
Select Table Sales.SalesOrderHeader Trigger iduSalesOrderDetail
Update Table Sales.SalesOrderHeader Trigger iduSalesOrderDetail
Execute Procedure dbo.uspLogError Trigger iduSalesOrderDetail
Execute Procedure dbo.uspPrintError Trigger iduSalesOrderDetail

Dependencies[edit]

Reference Type Object Type Referencing Object Child Type Child Object
Select Table Sales.SalesOrderDetail Trigger iduSalesOrderDetail


automatically generated[edit]

Table Sales.SalesOrderDetail
Description Individual products associated with a specific sales order. See SalesOrderHeader.


Column Data Type Nullable Default Description / PK / Index
SalesOrderID int not null Primary key. Foreign key to SalesOrderHeader.SalesOrderID.
PK_SalesOrderDetail_SalesOrderID_SalesOrderDetailID
SalesOrderDetailID int not null Primary key. One incremental unique number per product sold.
PK_SalesOrderDetail_SalesOrderID_SalesOrderDetailID
CarrierTrackingNumber nvarchar(25) null Shipment tracking number supplied by the shipper.
OrderQty smallint not null Quantity ordered per product.
ProductID int not null Product sold to customer. Foreign key to Product.ProductID.
IX_SalesOrderDetail_ProductID
SpecialOfferID int not null Promotional code. Foreign key to SpecialOffer.SpecialOfferID.
UnitPrice money not null Selling price of a single product.
UnitPriceDiscount money not null (0.0) Discount amount.
LineTotal Per product subtotal. Computed as UnitPrice * (1 - UnitPriceDiscount) * OrderQty.
rowguid uniqueidentifier not null (NEWID()) ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.
AK_SalesOrderDetail_rowguid
ModifiedDate datetime not null (GETDATE()) Date and time the record was last updated.


Relation Column Referenced Column
Sales.SalesOrderHeader SalesOrderID SalesOrderID
Sales.SpecialOfferProduct SpecialOfferID SpecialOfferID


Triggers Type
iduSalesOrderDetail ON INSERT UPDATE DELETE


Dependency Type Object Type Referenced Object Child Type Child Object
Schema Schema Sales
Insert Table Production.TransactionHistory Trigger iduSalesOrderDetail
Update Table Sales.Individual Trigger iduSalesOrderDetail
Select Table Sales.SalesOrderDetail Trigger iduSalesOrderDetail
Select Table Sales.SalesOrderHeader Trigger iduSalesOrderDetail
Update Table Sales.SalesOrderHeader Trigger iduSalesOrderDetail
Execute Procedure dbo.uspLogError Trigger iduSalesOrderDetail
Execute Procedure dbo.uspPrintError Trigger iduSalesOrderDetail


Reference Type Object Type Referencing Object Child Type Child Object
Select Table Sales.SalesOrderDetail Trigger iduSalesOrderDetail