|
| 1 | +CREATE TABLE [SalesLT].[SalesOrderHeader] ( |
| 2 | + [SalesOrderID] INT CONSTRAINT [DF_SalesOrderHeader_OrderID] DEFAULT (NEXT VALUE FOR [SalesLT].[SalesOrderNumber]) NOT NULL, |
| 3 | + [RevisionNumber] TINYINT CONSTRAINT [DF_SalesOrderHeader_RevisionNumber] DEFAULT ((0)) NOT NULL, |
| 4 | + [OrderDate] DATETIME CONSTRAINT [DF_SalesOrderHeader_OrderDate] DEFAULT (getdate()) NOT NULL, |
| 5 | + [DueDate] DATETIME NOT NULL, |
| 6 | + [ShipDate] DATETIME NULL, |
| 7 | + [Status] TINYINT CONSTRAINT [DF_SalesOrderHeader_Status] DEFAULT ((1)) NOT NULL, |
| 8 | + [OnlineOrderFlag] [dbo].[Flag] CONSTRAINT [DF_SalesOrderHeader_OnlineOrderFlag] DEFAULT ((1)) NOT NULL, |
| 9 | + [SalesOrderNumber] AS (isnull(N'SO'+CONVERT([nvarchar](23),[SalesOrderID],(0)),N'*** ERROR ***')), |
| 10 | + [PurchaseOrderNumber] [dbo].[OrderNumber] NULL, |
| 11 | + [AccountNumber] [dbo].[AccountNumber] NULL, |
| 12 | + [CustomerID] INT NOT NULL, |
| 13 | + [ShipToAddressID] INT NULL, |
| 14 | + [BillToAddressID] INT NULL, |
| 15 | + [ShipMethod] NVARCHAR (50) NOT NULL, |
| 16 | + [CreditCardApprovalCode] VARCHAR (15) NULL, |
| 17 | + [SubTotal] MONEY CONSTRAINT [DF_SalesOrderHeader_SubTotal] DEFAULT ((0.00)) NOT NULL, |
| 18 | + [TaxAmt] MONEY CONSTRAINT [DF_SalesOrderHeader_TaxAmt] DEFAULT ((0.00)) NOT NULL, |
| 19 | + [Freight] MONEY CONSTRAINT [DF_SalesOrderHeader_Freight] DEFAULT ((0.00)) NOT NULL, |
| 20 | + [TotalDue] AS (isnull(([SubTotal]+[TaxAmt])+[Freight],(0))), |
| 21 | + [Comment] NVARCHAR (MAX) NULL, |
| 22 | + [rowguid] UNIQUEIDENTIFIER CONSTRAINT [DF_SalesOrderHeader_rowguid] DEFAULT (newid()) NOT NULL, |
| 23 | + [ModifiedDate] DATETIME CONSTRAINT [DF_SalesOrderHeader_ModifiedDate] DEFAULT (getdate()) NOT NULL, |
| 24 | + CONSTRAINT [PK_SalesOrderHeader_SalesOrderID] PRIMARY KEY CLUSTERED ([SalesOrderID] ASC), |
| 25 | + CONSTRAINT [CK_SalesOrderHeader_DueDate] CHECK ([DueDate]>=[OrderDate]), |
| 26 | + CONSTRAINT [CK_SalesOrderHeader_Freight] CHECK ([Freight]>=(0.00)), |
| 27 | + CONSTRAINT [CK_SalesOrderHeader_ShipDate] CHECK ([ShipDate]>=[OrderDate] OR [ShipDate] IS NULL), |
| 28 | + CONSTRAINT [CK_SalesOrderHeader_Status] CHECK ([Status]>=(0) AND [Status]<=(8)), |
| 29 | + CONSTRAINT [CK_SalesOrderHeader_SubTotal] CHECK ([SubTotal]>=(0.00)), |
| 30 | + CONSTRAINT [CK_SalesOrderHeader_TaxAmt] CHECK ([TaxAmt]>=(0.00)), |
| 31 | + CONSTRAINT [FK_SalesOrderHeader_Address_BillTo_AddressID] FOREIGN KEY ([BillToAddressID]) REFERENCES [SalesLT].[Address] ([AddressID]), |
| 32 | + CONSTRAINT [FK_SalesOrderHeader_Address_ShipTo_AddressID] FOREIGN KEY ([ShipToAddressID]) REFERENCES [SalesLT].[Address] ([AddressID]), |
| 33 | + CONSTRAINT [FK_SalesOrderHeader_Customer_CustomerID] FOREIGN KEY ([CustomerID]) REFERENCES [SalesLT].[Customer] ([CustomerID]), |
| 34 | + CONSTRAINT [AK_SalesOrderHeader_rowguid] UNIQUE NONCLUSTERED ([rowguid] ASC), |
| 35 | + CONSTRAINT [AK_SalesOrderHeader_SalesOrderNumber] UNIQUE NONCLUSTERED ([SalesOrderNumber] ASC) |
| 36 | +); |
| 37 | + |
| 38 | + |
| 39 | +GO |
| 40 | +CREATE NONCLUSTERED INDEX [IX_SalesOrderHeader_CustomerID] |
| 41 | + ON [SalesLT].[SalesOrderHeader]([CustomerID] ASC); |
| 42 | + |
0 commit comments