Editing Sales.SalesOrderDetail (table)

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
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 ===
+
 
 
{| 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 17: Line 18:
 
| '''Nullable
 
| '''Nullable
 
| '''Default
 
| '''Default
| '''Description
+
| '''Description / PK / Index
 
+
 
|- valign="top"
 
|- valign="top"
 
| SalesOrderID
 
| SalesOrderID
Line 24: Line 25:
 
| not null
 
| not null
 
|  
 
|  
| Primary key. Foreign key to SalesOrderHeader.SalesOrderID.
+
| Primary key. Foreign key to SalesOrderHeader.SalesOrderID.<br />PK_SalesOrderDetail_SalesOrderID_SalesOrderDetailID
 
|- valign="top"
 
|- valign="top"
 
| SalesOrderDetailID
 
| SalesOrderDetailID
Line 30: Line 31:
 
| not null
 
| not null
 
|  
 
|  
| Primary key. One incremental unique number per product sold.
+
| Primary key. One incremental unique number per product sold.<br />PK_SalesOrderDetail_SalesOrderID_SalesOrderDetailID
 
|- valign="top"
 
|- valign="top"
 
| CarrierTrackingNumber
 
| CarrierTrackingNumber
Line 36: Line 37:
 
| null
 
| null
 
|  
 
|  
| Shipment tracking number supplied by the shipper.
+
| Shipment tracking number supplied by the shipper.<br />
 
|- valign="top"
 
|- valign="top"
 
| OrderQty
 
| OrderQty
Line 42: Line 43:
 
| not null
 
| not null
 
|  
 
|  
| Quantity ordered per product.
+
| Quantity ordered per product.<br />
 
|- valign="top"
 
|- valign="top"
 
| ProductID
 
| ProductID
Line 48: Line 49:
 
| not null
 
| not null
 
|  
 
|  
| Product sold to customer. Foreign key to Product.ProductID.
+
| Product sold to customer. Foreign key to Product.ProductID.<br />IX_SalesOrderDetail_ProductID
 
|- valign="top"
 
|- valign="top"
 
| SpecialOfferID
 
| SpecialOfferID
Line 54: Line 55:
 
| not null
 
| not null
 
|  
 
|  
| Promotional code. Foreign key to SpecialOffer.SpecialOfferID.
+
| Promotional code. Foreign key to SpecialOffer.SpecialOfferID.<br />
 
|- valign="top"
 
|- valign="top"
 
| UnitPrice
 
| UnitPrice
Line 60: Line 61:
 
| not null
 
| not null
 
|  
 
|  
| Selling price of a single product.
+
| Selling price of a single product.<br />
 
|- valign="top"
 
|- valign="top"
 
| UnitPriceDiscount
 
| UnitPriceDiscount
Line 66: Line 67:
 
| not null
 
| not null
 
| ((0.0))
 
| ((0.0))
| Discount amount.
+
| Discount amount.<br />
 
|- valign="top"
 
|- valign="top"
 
| LineTotal
 
| LineTotal
Line 72: Line 73:
 
|  
 
|  
 
|  
 
|  
| Per product subtotal. Computed as UnitPrice * (1 - UnitPriceDiscount) * OrderQty.
+
| Per product subtotal. Computed as UnitPrice * (1 - UnitPriceDiscount) * OrderQty.<br />
 
|- valign="top"
 
|- valign="top"
 
| rowguid
 
| rowguid
Line 78: Line 79:
 
| not null
 
| not null
 
| (newid())
 
| (newid())
| ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.
+
| ROWGUIDCOL number uniquely identifying the record. Used to support a merge replication sample.<br />AK_SalesOrderDetail_rowguid
 
|- valign="top"
 
|- valign="top"
 
| ModifiedDate
 
| ModifiedDate
Line 84: Line 85:
 
| not null
 
| not null
 
| (getdate())
 
| (getdate())
| Date and time the record was last updated.
+
| Date and time the record was last updated.<br />
|}
 
 
 
=== Primary Key ===
 
{| border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse"
 
|- style="background:silver"
 
| '''Primary Key
 
| '''Columns
 
|- valign="top"
 
| PK_SalesOrderDetail_SalesOrderID_SalesOrderDetailID
 
| SalesOrderID, SalesOrderDetailID
 
|}
 
 
 
=== Indexes ===
 
{| border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse"
 
|- style="background:silver"
 
| '''Index
 
| '''Type
 
| '''Columns
 
 
 
|- valign="top"
 
| AK_SalesOrderDetail_rowguid
 
| Unique
 
| rowguid
 
|- valign="top"
 
| IX_SalesOrderDetail_ProductID
 
|
 
| ProductID
 
 
|}
 
|}
  
=== Check Constraints ===
 
{| border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse"
 
|- style="background:silver"
 
| '''Check Constraint
 
| '''Expression
 
| '''Description
 
  
|- valign="top"
 
| CK_SalesOrderDetail_OrderQty
 
| ([OrderQty]>(0))
 
| Check constraint [OrderQty] > (0)
 
|- valign="top"
 
| CK_SalesOrderDetail_UnitPrice
 
| ([UnitPrice]>=(0.00))
 
| Check constraint [UnitPrice] >= (0.00)
 
|- valign="top"
 
| CK_SalesOrderDetail_UnitPriceDiscount
 
| ([UnitPriceDiscount]>=(0.00))
 
| Check constraint [UnitPriceDiscount] >= (0.00)
 
|}
 
  
=== 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 141: Line 95:
 
| '''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 152: Line 106:
 
|}
 
|}
  
=== 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
+
| '''Triggers
 
| '''Type
 
| '''Type
 
+
|- valign="top"
+
|-
 
| iduSalesOrderDetail
 
| iduSalesOrderDetail
 
| ON INSERT UPDATE DELETE
 
| ON INSERT UPDATE DELETE
 
|}
 
|}
  
==== Trigger iduSalesOrderDetail ====
 
<pre>
 
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;
 
</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 256: Line 127:
 
| '''Child Object
 
| '''Child Object
  
|- valign="top"
+
|-
| Schema
 
| Schema
 
| [[Sales_(schema)|Sales]]
 
 
 
|
 
|
 
|- valign="top"
 
 
| Insert
 
| Insert
 
| Table
 
| Table
Line 270: Line 134:
 
| Trigger
 
| Trigger
 
| iduSalesOrderDetail
 
| iduSalesOrderDetail
|- valign="top"
+
|-
 
| Update
 
| Update
 
| Table
 
| Table
Line 277: Line 141:
 
| Trigger
 
| Trigger
 
| iduSalesOrderDetail
 
| iduSalesOrderDetail
|- valign="top"
+
|-
 
| Select
 
| Select
 
| Table
 
| Table
Line 284: Line 148:
 
| Trigger
 
| Trigger
 
| iduSalesOrderDetail
 
| iduSalesOrderDetail
|- valign="top"
+
|-
 
| Select
 
| Select
 
| Table
 
| Table
Line 291: Line 155:
 
| Trigger
 
| Trigger
 
| iduSalesOrderDetail
 
| iduSalesOrderDetail
|- valign="top"
+
|-
 
| Update
 
| Update
 
| Table
 
| Table
Line 298: Line 162:
 
| Trigger
 
| Trigger
 
| iduSalesOrderDetail
 
| iduSalesOrderDetail
|- valign="top"
+
|-
 
| Execute
 
| Execute
 
| Procedure
 
| Procedure
Line 305: Line 169:
 
| Trigger
 
| Trigger
 
| iduSalesOrderDetail
 
| iduSalesOrderDetail
|- valign="top"
+
|-
 
| Execute
 
| Execute
 
| Procedure
 
| Procedure
Line 314: Line 178:
 
|}
 
|}
  
=== 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 324: Line 188:
 
| '''Child Object
 
| '''Child Object
  
|- valign="top"
+
|-
 
| Select
 
| Select
 
| Table
 
| Table
Line 332: Line 196:
 
| iduSalesOrderDetail
 
| iduSalesOrderDetail
 
|}
 
|}
 +
  
  

Please note that all contributions to dbscript Online Help may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Project:Copyrights for details). Do not submit copyrighted work without permission!

Cancel | Editing help (opens in new window)