Listing 1: SQL Script to Build and Populate a Database /*** Orders ***/ CREATE TABLE [dbo].[Orders] ( [OrderID] [int] NOT NULL , [ShipAddress] [nvarchar] (60) NULL , [ShipCountry] [nvarchar] (15) NULL ) ON [PRIMARY] GO ALTER TABLE [dbo].[Orders] WITH NOCHECK ADD CONSTRAINT [PK_Orders] PRIMARY KEY CLUSTERED ( [OrderID] ) ON [PRIMARY] GO INSERT Orders (OrderID, ShipAddress, ShipCountry) VALUES(100,N'89 Chiaroscuro Rd.',N'USA') INSERT Orders (OrderID, ShipAddress, ShipCountry) VALUES(101,N'Avda. Azteca 123',N'Mexico') INSERT Orders (OrderID, ShipAddress, ShipCountry) VALUES(102,N'35 King George',N'UK') /*** Order Details ***/ CREATE TABLE [dbo].[Order Details] ( [OrderID] [int] NOT NULL , [ProductID] [int] NOT NULL , [UnitPrice] [money] NOT NULL , [Quantity] [smallint] NOT NULL , [Discount] [real] NOT NULL ) ON [PRIMARY] GO ALTER TABLE [dbo].[Order Details] WITH NOCHECK ADD CONSTRAINT [PK_Order_Details] PRIMARY KEY CLUSTERED ( [OrderID], [ProductID] ) ON [PRIMARY] GO INSERT [Order Details] VALUES(100,100,14.4000,20,0.0) INSERT [Order Details] VALUES(101,100,18.0000,10,0.0) INSERT [Order Details] VALUES(101,101,12.5000,20,0.0) INSERT [Order Details] VALUES(101,102,19.4500,21,0.0) INSERT [Order Details] VALUES(102,100,18.0000,25,0.25) INSERT [Order Details] VALUES(102,103,21.3500,30,0.25) /*** Products ***/ CREATE TABLE [dbo].[Products] ( [ProductID] [int] NULL , [ProductName] [nvarchar] (40) NULL ) ON [PRIMARY] GO INSERT Products (ProductID, ProductName) VALUES(100,N'Chai') INSERT Products (ProductID, ProductName) VALUES(101,N'Gorgonzola Telino') INSERT Products (ProductID, ProductName) VALUES(102,N'Gula Malacca') INSERT Products (ProductID, ProductName) VALUES(103,N'Chef Anton''s Gumbo Mix')