MVC Music Store - Tutorial
Overview:
This tutorial is an introduction to ASP.NET MVC 2. We’ll be starting slowly, so beginner level web development experience is okay.
The application we’ll be building is a simple music store. There are three main parts to the application: shopping, checkout, and administration.
Visitors can browse Albums by Genre:
They can review their cart, removing any items they no longer want:
Proceeding to Checkout will prompt them to login or register for a user account.
After creating an account, they can complete the order by filling out shipping and payment information. To keep things simple, we’re running an amazing promotion: everything’s free if they enter promotion code “FREE”!
After ordering, they see a simple confirmation screen:
The Administration page shows a list of albums from which Administrators can Create, Edit, and Delete albums:
We’ll begin by creating a new ASP.NET MVC 2 project in Visual Studio 2010, and we’ll incrementally add features to create a complete functioning application. Along the way, we’ll cover database access, list and details views, data update pages, data validation, using master pages for consistent page layout, AJAX for page updates and validation, user membership, and more.
- You can use either Visual Studio 2010 or the free Visual Web Developer 2010 Express to build the application. You can use either SQL Server or the free SQL Server Express to host the database. The Express tools can be installed using the Web Platform Installer here:
http://www.microsoft.com/web/platform/tools.aspx
File / New Project
We’ll start by selecting the New Project from the File menu in Visual Studio. This brings up the New Project dialog.
We’ll select the Visual C# / Web Templates group on the left, then choose the “ASP.NET MVC 2 Empty Web Application” template in the center column. Name your project MvcMusicStore and press the OK button.
This will create our project. Let’s take a look at the folders that are included in our application in the Solution Explorer on the right side.
The Empty MVC 2 Solution isn’t completely empty – it adds a basic folder structure:
ASP.NET MVC makes use of some basic conventions for folder names:
Folder | Purpose |
/Controllers | Controllers respond to input from the browser, decide what to do with it, and return response to the user. |
/Views | Views hold our UI templates |
/Models | Models hold and manipulate data |
/Content | This folder holds our images, CSS, and any other static content |
/Scripts | This folder holds our JavaScript files |
/App_Data | This folder holds data files which can be read and updated by the application |
These folders are included even in an Empty ASP.NET MVC application because the framework makes some assumptions based on folder in naming conventions. For instance, controllers look for views in the Views folder by default, so sticking with the basic conventions not only makes it easier for other developers to understand your project, it simplifies your code.
ASP.NET MVC makes extensive use of conventions to simplify the development process; we’ll point them out as we go.
Controllers
Controllers run the show in an MVC application, so we’ll begin there. We’ll want to get our site started with a Home page, so we’ll add a Controller to handle the Home page of the site. We’ll follow the convention and call it HomeController.
Adding a HomeController
Right-click the controllers folder and select “Add”, then “Controller…”
Change the Controller Name to HomeController and press the Add button.
This will create a new file, HomeController.cs, with the following code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MvcMusicStore.Controllers
{
public class HomeController : Controller
{
//
// GET: /Home/
public ActionResult Index()
{
return View();
}
}
}
To start as simply as possible, let’s replace that with a simple method that just returns a string. Let’s make two simple changes:
- Change the method to return a string instead of an ActionResult
- Change the return statement to return “Hello from Home”
The method should now look like this:
public string Index()
{
return "Hello from Home";
}
Running the Application
Now we can run the site. We can do using any of the following:
- Choose the Debug ⇨ Start Debugging menu item
- Click the Green arrow button in the toolbar
- Use the keyboard shortcut, F5.
Okay, that was pretty quick – we created a new website, added a three line function, and we’ve got text in a browser. Not rocket science, but we’ve got a start.
Note: Visual Studio includes the ASP.NET Development Server, which will run your website on a random free “port” number. In the screenshot above, the site is running at http://localhost:26641/, so it’s using port 26641. Your port number will be different. When we talk about URL’s like /Store/Browse in this tutorial, that will go after the port number. Assuming a port number of 26641, browsing to /Store/Browse will mean browsing to http://localhost:26641/Store/Browse.
Now let’s set up a controller for our Store. The store has three levels:
- The Store Index lists the genres our store carries
- The Browse page lists all albums in a genre
- The Details page shows information for a specific album
We’ll start by adding a new StoreController, just like we created the HomeController. If you haven’t already, stop running the application either by closing the browser or selecting the Debug ⇨ Stop Debugging menu item.
Now add a new StoreController:
The new controller will already have an Index method. We’ll also need to add methods to handle the two other pages in the store: Browse, and Details. These methods are called Controller Actions, and as you’ve already seen with the HomeController Index() Controller Action, their job is to respond to URL requests and (generally speaking) put content on a page.
We’ll start by changing the StoreController.Index method to return the string “Hello from Store.Index()” and we’ll add similar methods for Browse and Details:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MvcMusicStore.Controllers
{
public class StoreController : Controller
{
//
// GET: /Store/
public string Index()
{
return "Hello from Store.Index()";
}
//
// GET: /Store/Browse
public string Browse()
{
return "Hello from Store.Browse()";
}
//
// GET: /Store/Details
public string Details()
{
return "Hello from Store.Details()";
}
}
}
Run the project again and browse to /Store/Details:
That’s great, but these are just simple strings. Let’s make them dynamic, so they take information from the URL and display it in the page output. First we’ll change the Details action to read and display an input parameter named ID.
//
// GET: /Store/Details/5
public string Details(int id)
{
string message = "Store.Details, ID = " + id;
return Server.HtmlEncode(message);
}
Run the application and browse to /Store/Details/5. The controller action read the ID from the URL and filled it into the string that we wrote out to the browser:
That was especially easy because ID is a special case. ASP.NET MVC uses a system called routing to map URL values to controller action parameters, and it includes a default “route” with an ID parameter already set up in all new projects. That’s configurable, and we’ll look at that more later.
We can also read querystring values from a URL without any routing changes. Alter the Browse Controller action to accept and Genre string parameter:
//
// GET: /Store/Browse/
public string Browse()
{
string message = "Store.Browse, Genre = " +
Server.HtmlEncode(Request.QueryString["genre"]);
return Server.HtmlEncode(message);
}
Now let’s browse to /Store/Browse?Genre=Disco
Note: We’re using the Server.HtmlEncode utility method to sanitize the user input. This prevents users from injecting Javascript into our View with a link like /Store/Browse?Genre=<script>window.location=’http://hackersite.com’</script>.
Let’s recap what we’ve done so far:
- We’ve created a new project in Visual Studio
- We’ve overviewed the basic folder structure of an ASP.NET MVC application
- We’ve learned how to run our website using the ASP.NET Development Server
- We’ve created two Controllers with four Controller Actions which respond to URL requests and return text to the browser
- Concepts:
- Views allow us to template content (rather than just writing out strings)
- Views follow a naming convention: /Controller/Action
- ViewModels help us to pass information from our Controller Action to our View
- ActionResult
So far we’ve just been returning strings from controller actions. That’s a great way to get an idea of how controllers work, but it’s not how you’d want to build a complete web application. We need a way to split our HTML out into a separate template. That’s exactly what Views do.
Using a MasterPage for common site elements
We’re going to convert our Home page to use a view, but before we do that we’ll want to add a CSS stylesheet and a MasterPage to our site. ASP.NET MasterPages allow us to set a template for common user interface elements that will use across the entire website. These are similar to include files, but a lot more powerful.
Since the MasterPage is shared by all pages in the site, we’ll create it in the /Views/Shared folder. Expand the Views folder and right-click the Shared folder, then select Add ⇨ New Item… ⇨ MVC 2 View Master Page.
Name it Site.Master and click the Add button.
Since we’ll want to reference our Stylesheet on all pages in our site, we’ll add a reference to it in our MasterPage. Add a <link> element directly below the <head> tag, so the head of your MasterPage looks like this:
<head runat="server">
<link href="/Content/Site.css" rel="Stylesheet" type="text/css" />
<title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>
</head>
We’ll want a header with links to our Home page and Store area on all pages in the site, so we’ll add that directly below the opening <div> tag. Our Site.Master now looks like this:
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<link href="/Content/Site.css" rel="Stylesheet" type="text/css" />
<title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>
</head>
<body>
<div>
<div id="header">
<h1>ASP.NET MVC Music Store</h1>
<ul id="navlist">
<li class="first"><a href="/" id="current">Home</a></li>
<li><a href="/Store/">Store</a></li>
</ul>
</div>
<asp:ContentPlaceHolder ID="MainContent" runat="server">
</asp:ContentPlaceHolder>
</div>
</body>
</html>
Adding a View template
Now we’re ready to add a View for the Home page. Change the HomeController Index method to return an ActionResult, and have it return View(), like this:
public class HomeController : Controller
{
//
// GET: /Home/
public ActionResult Index()
{ return View();
}
}
Now we’re ready to add the view file to the project. Position the text cursor within the controller action method, the right-click and select “Add View”. This will bring up the Add View dialog:
By default the dialog pre-populates the name of the View to match the action method. Since we’ve got a MasterPage set up, it also pre-fills that value for us.
When we click the add button, Visual Studio will create a new Index.aspx view template for us in the \Views\Home directory, creating the folder if doesn’t already exist.
Both the file name and location are important, since they follow a convention. The directory name, Home, matches the controller, which is named HomeController. The view template name, Index, matches the controller action which will be displaying the view. This allows us to keep our controller code simple since we don’t need to specify the name or location of the view as long as we’re following the convention.
Visual Studio also automatically opens the Index.aspx view template in the code-editor when it is created. Let’s update the Title to “Home”, and change the heading to say “This is the Home Page”, as shown in the code below:
<%@PageTitle=""Language="C#"MasterPageFile="~/Views/Shared/Site.Master"inherits="System.Web.Mvc.ViewPage" %>
<asp:ContentID="Content1"ContentPlaceHolderID="TitleContent"runat="server"> Home </asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>This is the Home Page</h2>
</asp:Content>
Now let’s run the application and see how our changes look on the Home page.
Let’s review what’s changed:
- The Home Page is using our MasterPage template, so the header content is displaying.
- The HomeController’s Index action method found and displayed the correct View template, even though our code called “return View()”, because our View template followed the standard naming convention.
Using a ViewModel to pass information to our View
A View template that just displays hardcoded HTML isn’t going to make for very interesting web site. To create a dynamic web site, we’ll need to pass information from our controller actions to the view templates. One common technique is to use a ViewModel, which allows us to cleanly package all the information our View template will need to display.
We’ll first change our Store Index page to list the number of genres we carry, so it looks like this:
We’ll create a ViewModel directory to hold our ViewModels by right-clicking the project and selecting Add⇨New Folder, then naming the folder ViewModels.
Next, we’ll create a ViewModel for our Store Index page. Right-click on the ViewModels folder and select Add⇨Class…
Name the class StoreIndexViewModel and press the Add button:
We’ll add an integer property named NumberOfGenres and a List of strings to handle Genres:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace MvcMusicStore.ViewModels
{
public class StoreIndexViewModel
{
public int NumberOfGenres { get; set; }
public List<string> Genres { get; set; }
}
}
Note: In case you’re wondering, the { get; set; } notation is making use of C#’s auto-implemented properties feature. This gives us the benefits of a property without requiring us to declare a backing field.
In order to use the StoreIndexViewModel from our StoreController, we need to add the following line to the top of the StoreController code:
using MvcMusicStore.ViewModels;
Now we’ll change the StoreController’s Index action method to return that ViewModel. We’ll use Object Initializer syntax to quickly create objects and set their properties with one line of code.
//
// GET: /Store/
public ActionResult Index()
{
// Create a list of genres
var genres = new List<string> {"Rock", "Jazz", "Country", "Pop", "Disco" };
// Create our view model
var viewModel = new StoreIndexViewModel {
NumberOfGenres = genres.Count(),
Genres = genres
};
return View(viewModel);
}
Note: If you’re unfamiliar with C#, you may assume that using var means that our viewModel variable is late-bound. That’s not correct – the C# compiler is using type-inference based on what we’re assigning to the variable to determine that viewModel is of type StoreIndexViewModel and compiling the local viewModel variable as a StoreIndexViewModel type, so we get compile-time checking and Visual Studio code-editor support.
Next we’ll want to add a view, but before we do that we need to build the project so that the Add View dialog knows about our StoreIndexViewModel. You can build the project by selecting the Build⇨Build Solution menu item.
Right-click Store.Index() and Add View. Create a strongly-typed view based on StoreIndexViewModel.
Now we’ll update the Store Index page to add the NumberOf Genres value. We’ll be using the <%: %> syntax (often referred to as “code nuggets”) to execute code within our View template. There are two main ways you’ll see this used:
Note: Prior to ASP.NET 4, the <%= %> syntax was used to execute code and write it out to the page. Starting with ASP.NET 4, you should always use the <%: %> syntax instead, since it will automatically HTML Encode the results, similar to how we used Server.HtmlEncode() in our controller action earlier.
Note that as soon as you finish typing the period after the word Model, Visual Studio’s IntelliSense feature kicks in and supplies you with a list of possible values. You can just select “NumberOfGenres” off the list rather than typing it in.
Next we’ll list the Genres in the list with a foreach loop, like this:
<ul> <% foreach (string genreName in Model.Genres) { %>
<li> <%: genreName %>
</li> <% } %>
</ul>
Our completed View template is shown below. If you look at the top of the Index page View template, you’ll notice that the template inherits a ViewPage of type StoreIndexViewModel. The View engine exposes the page type as a property named Model, so we can access our ViewModel’s values using the Model values. <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MvcMusicStore.ViewModels.StoreIndexViewModel>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Index
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h3>Browse Genres</h3>
<p>Select from <%: Model.NumberOfGenres %> genres:</p>
<ul> <% foreach (string genreName in Model.Genres) { %>
<li> <%: genreName %>
</li> <% } %>
</ul>
</asp:Content>
Run and click on the Store link. Note that the number of Genres was filled in.
More complex ViewModels for Store Browse and Index
Now let’s take a look at a slightly more complex example with the Store Browse page. This page reads the Genre name from the URL and displays the Genre and a few Albums using the name it was passed, as shown below.
First we’ll create some Model classes to represent Genres and Albums. Unlike ViewModels, which are created just to pass information from our Controller to our View, Model classes are built to contain and manage our data and domain logic. We won’t have a Genre page in the application, but we’ll be using the concept of a Genre repeatedly, so we’ll want a model class to manage it. Later on, we’ll be hooking our Genre and Album classes to a database, and they’ll map directly to database tables.
Let’s start by creating a Genre class. Right-click the models folder and add a new Genre class and add a string Name property.
public class Genre
{
public string Name { get; set; }
}
Now we’ll create an Album class that has a Title and a Genre.
public class Album
{
public string Title { get; set; }
public Genre Genre { get; set; }
}
Our Store Browse page will show one Genre and all the Albums in that Genre. A ViewModel is a great way to expose that information to the view. Let’s create a StoreBrowseViewModel (again, right-clicking the ViewModels folder and selecting Add⇨Class).
We’ll add a using statement to the top of the new StoreBrowseViewModel.cs file to reference our Models folder, then add a Genre property and a List of Albums. Here’s how the class looks after our changes:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; using MvcMusicStore.Models;
namespace MvcMusicStore.ViewModels
{
public class StoreBrowseViewModel
{ public Genre Genre { get; set; } public List<Album> Albums { get; set; }
}
}
Now we’re ready to change the Store Browse and Details action methods to use our new ViewModels. We’ll start by adding a using MvcMusicStore.Models statement to the using statements list at the top of the controller, then modify the Browse and Details methods to appear as follows:
// GET: /Store/Browse/
public ActionResult Browse()
{
string genreName =
Server.HtmlEncode(Request.QueryString["genre"]);
var genre = new Genre {
Name = genreName
};
var albums = new List<Album>();
albums.Add(new Album { Title = genreName + " Album 1" });
albums.Add(new Album { Title = genreName + " Album 2" });
var viewModel = new StoreBrowseViewModel
{
Genre = genre,
Albums = albums
};
return View(viewModel);
}
Now that we’ve set up our supporting classes, we’re ready to build our View template. Right-click on Browse and add a strongly typed Browse view, then a strongly typed Details view:
Now we can modify the Browse page content to display the Genre information, accessing the ViewModel info information:
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Browsing Genre: <%: Model.Genre.Name %></h2>
<ul>
<% foreach (var album in Model.Albums) { %> <li><%: album.Title %></li> <% } %>
</ul>
</asp:Content>
Now that we have these basics down, we can quickly create a Store Details page to display a single album. We could create a StoreDetailsViewModel that holds a single Album, but in this case we’ll just return an Album since we’re certain that’s all our Details view will be displaying. We’ll need to add a using statement that references the MvcMusicStore.Models namespace, then we can update our Store Details controller action as follows:
//
// GET: /Store/Details/5
public ActionResult Details(int id)
{
var album = new Album { Title = "Sample Album" };
return View(album);
}
Now right-click on the Store Details controller action method and create a new Details view:
Now we can display the Album title in the Details page.
<%@PageTitle=""Language="C#"MasterPageFile="~/Views/Shared/Site.Master"inherits="System.Web.Mvc.ViewPage<MvcMusicStore.Models.Album>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Details
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Album: <%: Model.Title %></h2>
</asp:Content>
Adding Links between pages
Our Store Index page lists Genres as plain text. We can easily convert those to dynamic links to our Browse page, so clicking on Disco will navigate to /Store/Browse?genre=Disco. We could just hardcode those links, as follows:
<ul> <% foreach (string genreName in Model.Genres) { %>
<li> <a href="/Store/Browse?genre=<%: genreName %>"><%: genreName %></a>
</li> <% } %>
</ul>
That works, but it could lead to trouble later since it relies on a hardcoded string. For instance, if we wanted to rename the Controller, we’d need to search through our code looking for links that need to be updated.
Instead, we can make use of an HTML Helper method. ASP.NET MVC includes HTML Helper methods which are available from our View template code to perform a variety of utility tasks just like this. You’ll use the Html.ActionLink helper method pretty often, since it makes it easy to build links and takes care of annoying details like making your paths are properly URL encoded.
Html.ActionLink has several different overloads to allow specifying as much information as you need for your links. In the simplest case, you’ll supply just the link text and the Action method. For example, we can link to “/Store/” on the Store Details page with the link text “Go to the Store Index” using the following
call: <%: Html.ActionLink("Go to the Store Index", "Index")%>
Note: In this case, we didn’t need to specify the controller name because we’re just linking to another action within the same controller that’s rendering the current view.
Our links to the Browse page will need to pass a parameter, though, so we’ll use another overload of the Html.ActionLink method that takes five parameters:
1. Link text, which will display the Genre name
2. Controller action name (Browse)
3. Controller name (Store)
4. Route parameter values, specifying both the name (Genre) and the value (Genre name)
5. HTML Attributes for the link – in this case we don’t need to specify any, so we’ll just pass null
Putting that all together, here’s how we’ll write those links to the Browse page:
<ul> <% foreach (string genreName in Model.Genres) { %>
<li> <%: Html.ActionLink(genreName, "Browse", "Store", new { genre = genreName }, null)%>
</li> <% } %>
</ul>
Models and Data Access
Concepts:
Database for MVC Music Strore:
Overview----
USE [MvcMusicStore]
GO
ALTER TABLE [dbo].[Album] DROP CONSTRAINT [FK__Album__ArtistId__276EDEB3]
GO
ALTER TABLE [dbo].[Album] DROP CONSTRAINT [FK_Album_Genre]
GO
ALTER TABLE [dbo].[Cart] DROP CONSTRAINT [FK_Cart_Album]
GO
ALTER TABLE [dbo].[OrderDetail] DROP CONSTRAINT [FK__InvoiceLi__Invoi__2F10007B]
GO
ALTER TABLE [dbo].[OrderDetail] DROP CONSTRAINT [FK_InvoiceLine_Album]
GO
ALTER TABLE [dbo].[Cart] DROP CONSTRAINT [FK_Cart_Album]
GO
DROP TABLE [dbo].[Cart]
GO
ALTER TABLE [dbo].[OrderDetail] DROP CONSTRAINT [FK__InvoiceLi__Invoi__2F10007B]
GO
ALTER TABLE [dbo].[OrderDetail] DROP CONSTRAINT [FK_InvoiceLine_Album]
GO
DROP TABLE [dbo].[OrderDetail]
GO
ALTER TABLE [dbo].[Album] DROP CONSTRAINT [FK__Album__ArtistId__276EDEB3]
GO
ALTER TABLE [dbo].[Album] DROP CONSTRAINT [FK_Album_Genre]
GO
ALTER TABLE [dbo].[Album] DROP CONSTRAINT [DF_Album_AlbumArtUrl]
GO
DROP TABLE [dbo].[Album]
GO
DROP TABLE [dbo].[Artist]
GO
DROP TABLE [dbo].[Genre]
GO
DROP TABLE [dbo].[Order]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Order](
[OrderId] [int] IDENTITY(1,1) NOT NULL,
[OrderDate] [datetime] NOT NULL,
[Username] [nvarchar](256) NULL,
[FirstName] [nvarchar](160) NULL,
[LastName] [nvarchar](160) NULL,
[Address] [nvarchar](70) NULL,
[City] [nvarchar](40) NULL,
[State] [nvarchar](40) NULL,
[PostalCode] [nvarchar](10) NULL,
[Country] [nvarchar](40) NULL,
[Phone] [nvarchar](24) NULL,
[Email] [nvarchar](160) NULL,
[Total] [numeric](10, 2) NOT NULL,
CONSTRAINT [PK__Invoice__D796AAB51A14E395] PRIMARY KEY CLUSTERED
(
[OrderId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IPK_Invoice] ON [dbo].[Order]
(
[OrderId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Genre](
[GenreId] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](120) NULL,
[Description] [nvarchar](4000) NULL,
PRIMARY KEY CLUSTERED
(
[GenreId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IPK_Genre] ON [dbo].[Genre]
(
[GenreId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
SET IDENTITY_INSERT [dbo].[Genre] ON
INSERT [dbo].[Genre] ([GenreId], [Name], [Description]) VALUES (1, N'Rock', N'Rock and Roll is a form of rock music developed in the 1950s and 1960s. Rock music combines many kinds of music from the United States, such as country music, folk music, church music, work songs, blues and jazz.')
INSERT [dbo].[Genre] ([GenreId], [Name], [Description]) VALUES (2, N'Jazz', N'Jazz is a type of music which was invented in the United States. Jazz music combines African-American music with European music. Some common jazz instruments include the saxophone, trumpet, piano, double bass, and drums.')
INSERT [dbo].[Genre] ([GenreId], [Name], [Description]) VALUES (3, N'Metal', N'Heavy Metal is a loud, aggressive style of Rock music. The bands who play heavy-metal music usually have one or two guitars, a bass guitar and drums. In some bands, electronic keyboards, organs, or other instruments are used. Heavy metal songs are loud and powerful-sounding, and have strong rhythms that are repeated. There are many different types of Heavy Metal, some of which are described below. Heavy metal bands sometimes dress in jeans, leather jackets, and leather boots, and have long hair. Heavy metal bands sometimes behave in a dramatic way when they play their instruments or sing. However, many heavy metal bands do not like to do this.')
INSERT [dbo].[Genre] ([GenreId], [Name], [Description]) VALUES (4, N'Alternative', N'Alternative rock is a type of rock music that became popular in the 1980s and became widely popular in the 1990s. Alternative rock is made up of various subgenres that have come out of the indie music scene since the 1980s, such as grunge, indie rock, Britpop, gothic rock, and indie pop. These genres are sorted by their collective types of punk, which laid the groundwork for alternative music in the 1970s.')
INSERT [dbo].[Genre] ([GenreId], [Name], [Description]) VALUES (5, N'Disco', N'Disco is a style of pop music that was popular in the mid-1970s. Disco music has a strong beat that people can dance to. People usually dance to disco music at bars called disco clubs. The word "disco" is also used to refer to the style of dancing that people do to disco music, or to the style of clothes that people wear to go disco dancing. Disco was at its most popular in the United States and Europe in the 1970s and early 1980s. Disco was brought into the mainstream by the hit movie Saturday Night Fever, which was released in 1977. This movie, which starred John Travolta, showed people doing disco dancing. Many radio stations played disco in the late 1970s.')
INSERT [dbo].[Genre] ([GenreId], [Name], [Description]) VALUES (6, N'Blues', N'The blues is a form of music that started in the United States during the start of the 20th century. It was started by former African slaves from spirituals, praise songs, and chants. The first blues songs were called Delta blues. These songs came from the area near the mouth of the Mississippi River.')
INSERT [dbo].[Genre] ([GenreId], [Name], [Description]) VALUES (7, N'Latin', N'Latin American music is the music of all countries in Latin America (and the Caribbean) and comes in many varieties. Latin America is home to musical styles such as the simple, rural conjunto music of northern Mexico, the sophisticated habanera of Cuba, the rhythmic sounds of the Puerto Rican plena, the symphonies of Heitor Villa-Lobos, and the simple and moving Andean flute. Music has played an important part recently in Latin America''s politics, the nueva canción movement being a prime example. Latin music is very diverse, with the only truly unifying thread being the use of Latin-derived languages, predominantly the Spanish language, the Portuguese language in Brazil, and to a lesser extent, Latin-derived creole languages, such as those found in Haiti.')
INSERT [dbo].[Genre] ([GenreId], [Name], [Description]) VALUES (8, N'Reggae', N'Reggae is a music genre first developed in Jamaica in the late 1960s. While sometimes used in a broader sense to refer to most types of Jamaican music, the term reggae more properly denotes a particular music style that originated following on the development of ska and rocksteady.')
INSERT [dbo].[Genre] ([GenreId], [Name], [Description]) VALUES (9, N'Pop', N'Pop music is a music genre that developed from the mid-1950s as a softer alternative to rock ''n'' roll and later to rock music. It has a focus on commercial recording, often oriented towards a youth market, usually through the medium of relatively short and simple love songs. While these basic elements of the genre have remained fairly constant, pop music has absorbed influences from most other forms of popular music, particularly borrowing from the development of rock music, and utilizing key technological innovations to produce new variations on existing themes.')
INSERT [dbo].[Genre] ([GenreId], [Name], [Description]) VALUES (10, N'Classical', N'Classical music is a very general term which normally refers to the standard music of countries in the Western world. It is music that has been composed by musicians who are trained in the art of writing music (composing) and written down in music notation so that other musicians can play it. Classical music can also be described as "art music" because great art (skill) is needed to compose it and to perform it well. Classical music differs from pop music because it is not made just in order to be popular for a short time or just to be a commercial success.')
SET IDENTITY_INSERT [dbo].[Genre] OFF
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Artist](
[ArtistId] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](120) NULL,
PRIMARY KEY CLUSTERED
(
[ArtistId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IPK_Artist] ON [dbo].[Artist]
(
[ArtistId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
SET IDENTITY_INSERT [dbo].[Artist] ON
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (1, N'AC/DC')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (2, N'Accept')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (3, N'Aerosmith')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (4, N'Alanis Morissette')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (5, N'Alice In Chains')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (6, N'Antônio Carlos Jobim')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (7, N'Apocalyptica')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (8, N'Audioslave')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (10, N'Billy Cobham')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (11, N'Black Label Society')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (12, N'Black Sabbath')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (14, N'Bruce Dickinson')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (15, N'Buddy Guy')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (16, N'Caetano Veloso')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (17, N'Chico Buarque')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (18, N'Chico Science & Nação Zumbi')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (19, N'Cidade Negra')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (20, N'Cláudio Zoli')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (21, N'Various Artists')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (22, N'Led Zeppelin')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (23, N'Frank Zappa & Captain Beefheart')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (24, N'Marcos Valle')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (27, N'Gilberto Gil')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (37, N'Ed Motta')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (41, N'Elis Regina')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (42, N'Milton Nascimento')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (46, N'Jorge Ben')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (50, N'Metallica')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (51, N'Queen')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (52, N'Kiss')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (53, N'Spyro Gyra')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (55, N'David Coverdale')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (56, N'Gonzaguinha')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (58, N'Deep Purple')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (59, N'Santana')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (68, N'Miles Davis')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (72, N'Vinícius De Moraes')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (76, N'Creedence Clearwater Revival')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (77, N'Cássia Eller')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (79, N'Dennis Chambers')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (80, N'Djavan')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (81, N'Eric Clapton')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (82, N'Faith No More')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (83, N'Falamansa')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (84, N'Foo Fighters')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (86, N'Funk Como Le Gusta')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (87, N'Godsmack')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (88, N'Guns N'' Roses')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (89, N'Incognito')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (90, N'Iron Maiden')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (92, N'Jamiroquai')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (94, N'Jimi Hendrix')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (95, N'Joe Satriani')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (96, N'Jota Quest')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (98, N'Judas Priest')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (99, N'Legião Urbana')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (100, N'Lenny Kravitz')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (101, N'Lulu Santos')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (102, N'Marillion')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (103, N'Marisa Monte')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (105, N'Men At Work')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (106, N'Motörhead')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (109, N'Mötley Crüe')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (110, N'Nirvana')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (111, N'O Terço')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (112, N'Olodum')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (113, N'Os Paralamas Do Sucesso')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (114, N'Ozzy Osbourne')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (115, N'Page & Plant')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (117, N'Paul D''Ianno')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (118, N'Pearl Jam')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (120, N'Pink Floyd')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (124, N'R.E.M.')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (126, N'Raul Seixas')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (127, N'Red Hot Chili Peppers')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (128, N'Rush')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (130, N'Skank')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (132, N'Soundgarden')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (133, N'Stevie Ray Vaughan & Double Trouble')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (134, N'Stone Temple Pilots')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (135, N'System Of A Down')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (136, N'Terry Bozzio, Tony Levin & Steve Stevens')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (137, N'The Black Crowes')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (139, N'The Cult')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (140, N'The Doors')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (141, N'The Police')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (142, N'The Rolling Stones')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (144, N'The Who')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (145, N'Tim Maia')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (150, N'U2')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (151, N'UB40')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (152, N'Van Halen')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (153, N'Velvet Revolver')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (155, N'Zeca Pagodinho')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (157, N'Dread Zeppelin')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (179, N'Scorpions')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (196, N'Cake')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (197, N'Aisha Duo')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (200, N'The Posies')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (201, N'Luciana Souza/Romero Lubambo')
GO
print 'Processed 100 total records'
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (202, N'Aaron Goldberg')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (203, N'Nicolaus Esterhazy Sinfonia')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (204, N'Temple of the Dog')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (205, N'Chris Cornell')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (206, N'Alberto Turco & Nova Schola Gregoriana')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (208, N'English Concert & Trevor Pinnock')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (211, N'Wilhelm Kempff')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (212, N'Yo-Yo Ma')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (213, N'Scholars Baroque Ensemble')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (217, N'Royal Philharmonic Orchestra & Sir Thomas Beecham')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (219, N'Britten Sinfonia, Ivor Bolton & Lesley Garrett')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (221, N'Sir Georg Solti & Wiener Philharmoniker')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (223, N'London Symphony Orchestra & Sir Charles Mackerras')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (224, N'Barry Wordsworth & BBC Concert Orchestra')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (226, N'Eugene Ormandy')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (229, N'Boston Symphony Orchestra & Seiji Ozawa')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (230, N'Aaron Copland & London Symphony Orchestra')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (231, N'Ton Koopman')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (232, N'Sergei Prokofiev & Yuri Temirkanov')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (233, N'Chicago Symphony Orchestra & Fritz Reiner')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (234, N'Orchestra of The Age of Enlightenment')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (236, N'James Levine')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (237, N'Berliner Philharmoniker & Hans Rosbaud')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (238, N'Maurizio Pollini')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (240, N'Gustav Mahler')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (242, N'Edo de Waart & San Francisco Symphony')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (244, N'Choir Of Westminster Abbey & Simon Preston')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (245, N'Michael Tilson Thomas & San Francisco Symphony')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (247, N'The King''s Singers')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (248, N'Berliner Philharmoniker & Herbert Von Karajan')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (250, N'Christopher O''Riley')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (251, N'Fretwork')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (252, N'Amy Winehouse')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (253, N'Calexico')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (255, N'Yehudi Menuhin')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (258, N'Les Arts Florissants & William Christie')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (259, N'The 12 Cellists of The Berlin Philharmonic')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (260, N'Adrian Leaper & Doreen de Feis')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (261, N'Roger Norrington, London Classical Players')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (264, N'Kent Nagano and Orchestre de l''Opéra de Lyon')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (265, N'Julian Bream')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (266, N'Martin Roscoe')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (267, N'Göteborgs Symfoniker & Neeme Järvi')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (270, N'Gerald Moore')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (271, N'Mela Tenenbaum, Pro Musica Prague & Richard Kapp')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (274, N'Nash Ensemble')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (276, N'Chic')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (277, N'Anita Ward')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (278, N'Donna Summer')
SET IDENTITY_INSERT [dbo].[Artist] OFF
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Album](
[AlbumId] [int] IDENTITY(1,1) NOT NULL,
[GenreId] [int] NOT NULL,
[ArtistId] [int] NOT NULL,
[Title] [nvarchar](160) NOT NULL,
[Price] [numeric](10, 2) NOT NULL,
[AlbumArtUrl] [nvarchar](1024) NULL CONSTRAINT [DF_Album_AlbumArtUrl] DEFAULT (N'/Content/Images/placeholder.gif'),
CONSTRAINT [PK__Album__97B4BE370AD2A005] PRIMARY KEY CLUSTERED
(
[AlbumId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IFK_Artist_Album] ON [dbo].[Album]
(
[ArtistId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IPK_ProductItem] ON [dbo].[Album]
(
[AlbumId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
SET IDENTITY_INSERT [dbo].[Album] ON
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (386, 1, 1, N'For Those About To Rock We Salute You', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (387, 1, 1, N'Let There Be Rock', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (388, 1, 100, N'Greatest Hits', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (389, 1, 102, N'Misplaced Childhood', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (390, 1, 105, N'The Best Of Men At Work', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (392, 1, 110, N'Nevermind', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (393, 1, 111, N'Compositores', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (394, 1, 114, N'Bark at the Moon (Remastered)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (395, 1, 114, N'Blizzard of Ozz', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (396, 1, 114, N'Diary of a Madman (Remastered)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (397, 1, 114, N'No More Tears (Remastered)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (398, 1, 114, N'Speak of the Devil', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (399, 1, 115, N'Walking Into Clarksdale', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (400, 1, 117, N'The Beast Live', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (401, 1, 118, N'Live On Two Legs [Live]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (402, 1, 118, N'Riot Act', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (403, 1, 118, N'Ten', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (404, 1, 118, N'Vs.', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (405, 1, 120, N'Dark Side Of The Moon', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (406, 1, 124, N'New Adventures In Hi-Fi', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (407, 1, 126, N'Raul Seixas', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (408, 1, 127, N'By The Way', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (409, 1, 127, N'Californication', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (410, 1, 128, N'Retrospective I (1974-1980)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (411, 1, 130, N'Maquinarama', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (412, 1, 130, N'O Samba Poconé', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (413, 1, 132, N'A-Sides', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (414, 1, 134, N'Core', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (415, 1, 136, N'[1997] Black Light Syndrome', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (416, 1, 139, N'Beyond Good And Evil', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (418, 1, 140, N'The Doors', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (419, 1, 141, N'The Police Greatest Hits', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (420, 1, 142, N'Hot Rocks, 1964-1971 (Disc 1)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (421, 1, 142, N'No Security', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (422, 1, 142, N'Voodoo Lounge', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (423, 1, 144, N'My Generation - The Very Best Of The Who', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (424, 1, 150, N'Achtung Baby', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (425, 1, 150, N'B-Sides 1980-1990', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (426, 1, 150, N'How To Dismantle An Atomic Bomb', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (427, 1, 150, N'Pop', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (428, 1, 150, N'Rattle And Hum', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (429, 1, 150, N'The Best Of 1980-1990', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (430, 1, 150, N'War', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (431, 1, 150, N'Zooropa', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (432, 1, 152, N'Diver Down', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (433, 1, 152, N'The Best Of Van Halen, Vol. I', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (434, 1, 152, N'Van Halen III', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (435, 1, 152, N'Van Halen', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (436, 1, 153, N'Contraband', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (437, 1, 157, N'Un-Led-Ed', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (439, 1, 2, N'Balls to the Wall', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (440, 1, 2, N'Restless and Wild', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (441, 1, 200, N'Every Kind of Light', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (442, 1, 22, N'BBC Sessions [Disc 1] [Live]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (443, 1, 22, N'BBC Sessions [Disc 2] [Live]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (444, 1, 22, N'Coda', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (445, 1, 22, N'Houses Of The Holy', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (446, 1, 22, N'In Through The Out Door', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (447, 1, 22, N'IV', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (448, 1, 22, N'Led Zeppelin I', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (449, 1, 22, N'Led Zeppelin II', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (450, 1, 22, N'Led Zeppelin III', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (451, 1, 22, N'Physical Graffiti [Disc 1]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (452, 1, 22, N'Physical Graffiti [Disc 2]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (453, 1, 22, N'Presence', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (454, 1, 22, N'The Song Remains The Same (Disc 1)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (455, 1, 22, N'The Song Remains The Same (Disc 2)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (456, 1, 23, N'Bongo Fury', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (457, 1, 3, N'Big Ones', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (458, 1, 4, N'Jagged Little Pill', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (459, 1, 5, N'Facelift', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (460, 1, 51, N'Greatest Hits I', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (461, 1, 51, N'Greatest Hits II', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (462, 1, 51, N'News Of The World', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (463, 1, 52, N'Greatest Kiss', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (464, 1, 52, N'Unplugged [Live]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (465, 1, 55, N'Into The Light', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (466, 1, 58, N'Come Taste The Band', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (467, 1, 58, N'Deep Purple In Rock', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (468, 1, 58, N'Fireball', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (469, 1, 58, N'Machine Head', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (470, 1, 58, N'MK III The Final Concerts [Disc 1]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (471, 1, 58, N'Purpendicular', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (472, 1, 58, N'Slaves And Masters', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (473, 1, 58, N'Stormbringer', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (474, 1, 58, N'The Battle Rages On', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (475, 1, 58, N'The Final Concerts (Disc 2)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (476, 1, 59, N'Santana - As Years Go By', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (477, 1, 59, N'Santana Live', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (478, 1, 59, N'Supernatural', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (479, 1, 76, N'Chronicle, Vol. 1', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (480, 1, 76, N'Chronicle, Vol. 2', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (481, 1, 8, N'Audioslave', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (482, 1, 82, N'King For A Day Fool For A Lifetime', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (483, 1, 84, N'In Your Honor [Disc 1]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (484, 1, 84, N'In Your Honor [Disc 2]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (485, 1, 84, N'The Colour And The Shape', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (486, 1, 88, N'Appetite for Destruction', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (487, 1, 88, N'Use Your Illusion I', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (488, 1, 90, N'A Matter of Life and Death', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
GO
print 'Processed 100 total records'
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (489, 1, 90, N'Brave New World', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (490, 1, 90, N'Fear Of The Dark', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (491, 1, 90, N'Live At Donington 1992 (Disc 1)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (492, 1, 90, N'Live At Donington 1992 (Disc 2)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (493, 1, 90, N'Rock In Rio [CD2]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (494, 1, 90, N'The Number of The Beast', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (495, 1, 90, N'The X Factor', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (496, 1, 90, N'Virtual XI', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (497, 1, 92, N'Emergency On Planet Earth', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (498, 1, 94, N'Are You Experienced?', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (499, 1, 95, N'Surfing with the Alien (Remastered)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (500, 10, 203, N'The Best of Beethoven', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (504, 10, 208, N'Pachelbel: Canon & Gigue', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (507, 10, 211, N'Bach: Goldberg Variations', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (508, 10, 212, N'Bach: The Cello Suites', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (509, 10, 213, N'Handel: The Messiah (Highlights)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (513, 10, 217, N'Haydn: Symphonies 99 - 104', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (515, 10, 219, N'A Soprano Inspired', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (517, 10, 221, N'Wagner: Favourite Overtures', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (519, 10, 223, N'Tchaikovsky: The Nutcracker', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (520, 10, 224, N'The Last Night of the Proms', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (523, 10, 226, N'Respighi:Pines of Rome', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (524, 10, 226, N'Strauss: Waltzes', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (525, 10, 229, N'Carmina Burana', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (526, 10, 230, N'A Copland Celebration, Vol. I', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (527, 10, 231, N'Bach: Toccata & Fugue in D Minor', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (528, 10, 232, N'Prokofiev: Symphony No.1', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (529, 10, 233, N'Scheherazade', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (530, 10, 234, N'Bach: The Brandenburg Concertos', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (532, 10, 236, N'Mascagni: Cavalleria Rusticana', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (533, 10, 237, N'Sibelius: Finlandia', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (537, 10, 242, N'Adams, John: The Chairman Dances', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (539, 10, 245, N'Berlioz: Symphonie Fantastique', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (540, 10, 245, N'Prokofiev: Romeo & Juliet', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (542, 10, 247, N'English Renaissance', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (544, 10, 248, N'Mozart: Symphonies Nos. 40 & 41', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (546, 10, 250, N'SCRIABIN: Vers la flamme', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (548, 10, 255, N'Bartok: Violin & Viola Concertos', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (551, 10, 259, N'South American Getaway', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (552, 10, 260, N'Górecki: Symphony No. 3', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (553, 10, 261, N'Purcell: The Fairy Queen', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (556, 10, 264, N'Weill: The Seven Deadly Sins', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (558, 10, 266, N'Szymanowski: Piano Works, Vol. 1', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (559, 10, 267, N'Nielsen: The Six Symphonies', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (562, 10, 274, N'Mozart: Chamber Music', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (563, 2, 10, N'The Best Of Billy Cobham', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (564, 2, 197, N'Quiet Songs', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (565, 2, 202, N'Worlds', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (566, 2, 27, N'Quanta Gente Veio ver--Bônus De Carnaval', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (567, 2, 53, N'Heart of the Night', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (568, 2, 53, N'Morning Dance', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (569, 2, 6, N'Warner 25 Anos', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (570, 2, 68, N'Miles Ahead', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (571, 2, 68, N'The Essential Miles Davis [Disc 1]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (572, 2, 68, N'The Essential Miles Davis [Disc 2]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (573, 2, 79, N'Outbreak', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (574, 2, 89, N'Blue Moods', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (575, 3, 100, N'Greatest Hits', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (576, 3, 106, N'Ace Of Spades', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (577, 3, 109, N'Motley Crue Greatest Hits', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (578, 3, 11, N'Alcohol Fueled Brewtality Live! [Disc 1]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (579, 3, 11, N'Alcohol Fueled Brewtality Live! [Disc 2]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (580, 3, 114, N'Tribute', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (581, 3, 12, N'Black Sabbath Vol. 4 (Remaster)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (582, 3, 12, N'Black Sabbath', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (583, 3, 135, N'Mezmerize', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (584, 3, 14, N'Chemical Wedding', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (585, 3, 50, N'...And Justice For All', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (586, 3, 50, N'Black Album', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (587, 3, 50, N'Garage Inc. (Disc 1)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (588, 3, 50, N'Garage Inc. (Disc 2)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (589, 3, 50, N'Load', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (590, 3, 50, N'Master Of Puppets', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (591, 3, 50, N'ReLoad', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (592, 3, 50, N'Ride The Lightning', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (593, 3, 50, N'St. Anger', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (594, 3, 7, N'Plays Metallica By Four Cellos', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (595, 3, 87, N'Faceless', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (596, 3, 88, N'Use Your Illusion II', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (597, 3, 90, N'A Real Dead One', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (598, 3, 90, N'A Real Live One', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (599, 3, 90, N'Live After Death', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (600, 3, 90, N'No Prayer For The Dying', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (601, 3, 90, N'Piece Of Mind', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (602, 3, 90, N'Powerslave', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (603, 3, 90, N'Rock In Rio [CD1]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (604, 3, 90, N'Rock In Rio [CD2]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (605, 3, 90, N'Seventh Son of a Seventh Son', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (606, 3, 90, N'Somewhere in Time', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (607, 3, 90, N'The Number of The Beast', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (608, 3, 98, N'Living After Midnight', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (609, 4, 196, N'Cake: B-Sides and Rarities', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (610, 4, 204, N'Temple of the Dog', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (611, 4, 205, N'Carry On', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (612, 4, 253, N'Carried to Dust (Bonus Track Version)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (613, 4, 8, N'Revelations', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (614, 6, 133, N'In Step', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (615, 6, 137, N'Live [Disc 1]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (616, 6, 137, N'Live [Disc 2]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (618, 6, 81, N'The Cream Of Clapton', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (619, 6, 81, N'Unplugged', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
GO
print 'Processed 200 total records'
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (620, 6, 90, N'Iron Maiden', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (623, 7, 103, N'Barulhinho Bom', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (624, 7, 112, N'Olodum', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (625, 7, 113, N'Acústico MTV', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (626, 7, 113, N'Arquivo II', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (627, 7, 113, N'Arquivo Os Paralamas Do Sucesso', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (628, 7, 145, N'Serie Sem Limite (Disc 1)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (629, 7, 145, N'Serie Sem Limite (Disc 2)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (630, 7, 155, N'Ao Vivo [IMPORT]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (631, 7, 16, N'Prenda Minha', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (632, 7, 16, N'Sozinho Remix Ao Vivo', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (633, 7, 17, N'Minha Historia', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (634, 7, 18, N'Afrociberdelia', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (635, 7, 18, N'Da Lama Ao Caos', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (636, 7, 20, N'Na Pista', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (637, 7, 201, N'Duos II', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (638, 7, 21, N'Sambas De Enredo 2001', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (639, 7, 21, N'Vozes do MPB', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (640, 7, 24, N'Chill: Brazil (Disc 1)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (641, 7, 27, N'Quanta Gente Veio Ver (Live)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (642, 7, 37, N'The Best of Ed Motta', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (643, 7, 41, N'Elis Regina-Minha História', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (644, 7, 42, N'Milton Nascimento Ao Vivo', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (645, 7, 42, N'Minas', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (646, 7, 46, N'Jorge Ben Jor 25 Anos', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (647, 7, 56, N'Meus Momentos', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (648, 7, 6, N'Chill: Brazil (Disc 2)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (649, 7, 72, N'Vinicius De Moraes', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (651, 7, 77, N'Cássia Eller - Sem Limite [Disc 1]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (652, 7, 80, N'Djavan Ao Vivo - Vol. 02', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (653, 7, 80, N'Djavan Ao Vivo - Vol. 1', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (654, 7, 81, N'Unplugged', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (655, 7, 83, N'Deixa Entrar', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (656, 7, 86, N'Roda De Funk', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (657, 7, 96, N'Jota Quest-1995', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (659, 7, 99, N'Mais Do Mesmo', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (660, 8, 100, N'Greatest Hits', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (661, 8, 151, N'UB40 The Best Of - Volume Two [UK]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (662, 8, 19, N'Acústico MTV [Live]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (663, 8, 19, N'Cidade Negra - Hits', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (665, 9, 21, N'Axé Bahia 2001', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (666, 9, 252, N'Frank', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (667, 5, 276, N'Le Freak', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (668, 5, 278, N'MacArthur Park Suite', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (669, 5, 277, N'Ring My Bell', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
SET IDENTITY_INSERT [dbo].[Album] OFF
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[OrderDetail](
[OrderDetailId] [int] IDENTITY(1,1) NOT NULL,
[OrderId] [int] NOT NULL,
[AlbumId] [int] NOT NULL,
[Quantity] [int] NOT NULL,
[UnitPrice] [numeric](10, 2) NOT NULL,
CONSTRAINT [PK__InvoiceL__0D760AD91DE57479] PRIMARY KEY CLUSTERED
(
[OrderDetailId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IFK_Invoice_InvoiceLine] ON [dbo].[OrderDetail]
(
[OrderId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IPK_InvoiceLine] ON [dbo].[OrderDetail]
(
[OrderDetailId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Cart](
[RecordId] [int] IDENTITY(1,1) NOT NULL,
[CartId] [varchar](50) NOT NULL,
[AlbumId] [int] NOT NULL,
[Count] [int] NOT NULL,
[DateCreated] [datetime] NOT NULL,
CONSTRAINT [PK_Cart] PRIMARY KEY CLUSTERED
(
[RecordId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[Album] WITH CHECK ADD CONSTRAINT [FK__Album__ArtistId__276EDEB3] FOREIGN KEY([ArtistId])
REFERENCES [dbo].[Artist] ([ArtistId])
GO
ALTER TABLE [dbo].[Album] CHECK CONSTRAINT [FK__Album__ArtistId__276EDEB3]
GO
ALTER TABLE [dbo].[Album] WITH CHECK ADD CONSTRAINT [FK_Album_Genre] FOREIGN KEY([GenreId])
REFERENCES [dbo].[Genre] ([GenreId])
GO
ALTER TABLE [dbo].[Album] CHECK CONSTRAINT [FK_Album_Genre]
GO
ALTER TABLE [dbo].[Cart] WITH CHECK ADD CONSTRAINT [FK_Cart_Album] FOREIGN KEY([AlbumId])
REFERENCES [dbo].[Album] ([AlbumId])
GO
ALTER TABLE [dbo].[Cart] CHECK CONSTRAINT [FK_Cart_Album]
GO
ALTER TABLE [dbo].[OrderDetail] WITH CHECK ADD CONSTRAINT [FK__InvoiceLi__Invoi__2F10007B] FOREIGN KEY([OrderId])
REFERENCES [dbo].[Order] ([OrderId])
GO
ALTER TABLE [dbo].[OrderDetail] CHECK CONSTRAINT [FK__InvoiceLi__Invoi__2F10007B]
GO
ALTER TABLE [dbo].[OrderDetail] WITH CHECK ADD CONSTRAINT [FK_InvoiceLine_Album] FOREIGN KEY([AlbumId])
REFERENCES [dbo].[Album] ([AlbumId])
GO
ALTER TABLE [dbo].[OrderDetail] CHECK CONSTRAINT [FK_InvoiceLine_Album]
GO
Next, we’ll create a ViewModel for our Store Index page. Right-click on the ViewModels folder and select Add⇨Class…
Name the class StoreIndexViewModel and press the Add button:
We’ll add an integer property named NumberOfGenres and a List of strings to handle Genres:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace MvcMusicStore.ViewModels
{
public class StoreIndexViewModel
{
public int NumberOfGenres { get; set; }
public List<string> Genres { get; set; }
}
}
Note: In case you’re wondering, the { get; set; } notation is making use of C#’s auto-implemented properties feature. This gives us the benefits of a property without requiring us to declare a backing field.
In order to use the StoreIndexViewModel from our StoreController, we need to add the following line to the top of the StoreController code:
using MvcMusicStore.ViewModels;
Now we’ll change the StoreController’s Index action method to return that ViewModel. We’ll use Object Initializer syntax to quickly create objects and set their properties with one line of code.
//
// GET: /Store/
public ActionResult Index()
{
// Create a list of genres
var genres = new List<string> {"Rock", "Jazz", "Country", "Pop", "Disco" };
// Create our view model
var viewModel = new StoreIndexViewModel {
NumberOfGenres = genres.Count(),
Genres = genres
};
return View(viewModel);
}
Note: If you’re unfamiliar with C#, you may assume that using var means that our viewModel variable is late-bound. That’s not correct – the C# compiler is using type-inference based on what we’re assigning to the variable to determine that viewModel is of type StoreIndexViewModel and compiling the local viewModel variable as a StoreIndexViewModel type, so we get compile-time checking and Visual Studio code-editor support.
Next we’ll want to add a view, but before we do that we need to build the project so that the Add View dialog knows about our StoreIndexViewModel. You can build the project by selecting the Build⇨Build Solution menu item.
Right-click Store.Index() and Add View. Create a strongly-typed view based on StoreIndexViewModel.
Now we’ll update the Store Index page to add the NumberOf Genres value. We’ll be using the <%: %> syntax (often referred to as “code nuggets”) to execute code within our View template. There are two main ways you’ll see this used:
- Code enclosed within <% %> will be executed
- Code enclosed within <%: %> will be executed, and the result will be output to the page
Note: Prior to ASP.NET 4, the <%= %> syntax was used to execute code and write it out to the page. Starting with ASP.NET 4, you should always use the <%: %> syntax instead, since it will automatically HTML Encode the results, similar to how we used Server.HtmlEncode() in our controller action earlier.
Note that as soon as you finish typing the period after the word Model, Visual Studio’s IntelliSense feature kicks in and supplies you with a list of possible values. You can just select “NumberOfGenres” off the list rather than typing it in.
Next we’ll list the Genres in the list with a foreach loop, like this:
<ul> <% foreach (string genreName in Model.Genres) { %>
<li> <%: genreName %>
</li> <% } %>
</ul>
Our completed View template is shown below. If you look at the top of the Index page View template, you’ll notice that the template inherits a ViewPage of type StoreIndexViewModel. The View engine exposes the page type as a property named Model, so we can access our ViewModel’s values using the Model values. <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MvcMusicStore.ViewModels.StoreIndexViewModel>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Index
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h3>Browse Genres</h3>
<p>Select from <%: Model.NumberOfGenres %> genres:</p>
<ul> <% foreach (string genreName in Model.Genres) { %>
<li> <%: genreName %>
</li> <% } %>
</ul>
</asp:Content>
Run and click on the Store link. Note that the number of Genres was filled in.
More complex ViewModels for Store Browse and Index
Now let’s take a look at a slightly more complex example with the Store Browse page. This page reads the Genre name from the URL and displays the Genre and a few Albums using the name it was passed, as shown below.
First we’ll create some Model classes to represent Genres and Albums. Unlike ViewModels, which are created just to pass information from our Controller to our View, Model classes are built to contain and manage our data and domain logic. We won’t have a Genre page in the application, but we’ll be using the concept of a Genre repeatedly, so we’ll want a model class to manage it. Later on, we’ll be hooking our Genre and Album classes to a database, and they’ll map directly to database tables.
Let’s start by creating a Genre class. Right-click the models folder and add a new Genre class and add a string Name property.
public class Genre
{
public string Name { get; set; }
}
Now we’ll create an Album class that has a Title and a Genre.
public class Album
{
public string Title { get; set; }
public Genre Genre { get; set; }
}
Our Store Browse page will show one Genre and all the Albums in that Genre. A ViewModel is a great way to expose that information to the view. Let’s create a StoreBrowseViewModel (again, right-clicking the ViewModels folder and selecting Add⇨Class).
We’ll add a using statement to the top of the new StoreBrowseViewModel.cs file to reference our Models folder, then add a Genre property and a List of Albums. Here’s how the class looks after our changes:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; using MvcMusicStore.Models;
namespace MvcMusicStore.ViewModels
{
public class StoreBrowseViewModel
{ public Genre Genre { get; set; } public List<Album> Albums { get; set; }
}
}
Now we’re ready to change the Store Browse and Details action methods to use our new ViewModels. We’ll start by adding a using MvcMusicStore.Models statement to the using statements list at the top of the controller, then modify the Browse and Details methods to appear as follows:
// GET: /Store/Browse/
public ActionResult Browse()
{
string genreName =
Server.HtmlEncode(Request.QueryString["genre"]);
var genre = new Genre {
Name = genreName
};
var albums = new List<Album>();
albums.Add(new Album { Title = genreName + " Album 1" });
albums.Add(new Album { Title = genreName + " Album 2" });
var viewModel = new StoreBrowseViewModel
{
Genre = genre,
Albums = albums
};
return View(viewModel);
}
Now that we’ve set up our supporting classes, we’re ready to build our View template. Right-click on Browse and add a strongly typed Browse view, then a strongly typed Details view:
Now we can modify the Browse page content to display the Genre information, accessing the ViewModel info information:
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Browsing Genre: <%: Model.Genre.Name %></h2>
<ul>
<% foreach (var album in Model.Albums) { %> <li><%: album.Title %></li> <% } %>
</ul>
</asp:Content>
Now that we have these basics down, we can quickly create a Store Details page to display a single album. We could create a StoreDetailsViewModel that holds a single Album, but in this case we’ll just return an Album since we’re certain that’s all our Details view will be displaying. We’ll need to add a using statement that references the MvcMusicStore.Models namespace, then we can update our Store Details controller action as follows:
//
// GET: /Store/Details/5
public ActionResult Details(int id)
{
var album = new Album { Title = "Sample Album" };
return View(album);
}
Now right-click on the Store Details controller action method and create a new Details view:
Now we can display the Album title in the Details page.
<%@PageTitle=""Language="C#"MasterPageFile="~/Views/Shared/Site.Master"inherits="System.Web.Mvc.ViewPage<MvcMusicStore.Models.Album>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Details
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Album: <%: Model.Title %></h2>
</asp:Content>
Adding Links between pages
Our Store Index page lists Genres as plain text. We can easily convert those to dynamic links to our Browse page, so clicking on Disco will navigate to /Store/Browse?genre=Disco. We could just hardcode those links, as follows:
<ul> <% foreach (string genreName in Model.Genres) { %>
<li> <a href="/Store/Browse?genre=<%: genreName %>"><%: genreName %></a>
</li> <% } %>
</ul>
That works, but it could lead to trouble later since it relies on a hardcoded string. For instance, if we wanted to rename the Controller, we’d need to search through our code looking for links that need to be updated.
Instead, we can make use of an HTML Helper method. ASP.NET MVC includes HTML Helper methods which are available from our View template code to perform a variety of utility tasks just like this. You’ll use the Html.ActionLink helper method pretty often, since it makes it easy to build links and takes care of annoying details like making your paths are properly URL encoded.
Html.ActionLink has several different overloads to allow specifying as much information as you need for your links. In the simplest case, you’ll supply just the link text and the Action method. For example, we can link to “/Store/” on the Store Details page with the link text “Go to the Store Index” using the following
call: <%: Html.ActionLink("Go to the Store Index", "Index")%>
Note: In this case, we didn’t need to specify the controller name because we’re just linking to another action within the same controller that’s rendering the current view.
Our links to the Browse page will need to pass a parameter, though, so we’ll use another overload of the Html.ActionLink method that takes five parameters:
1. Link text, which will display the Genre name
2. Controller action name (Browse)
3. Controller name (Store)
4. Route parameter values, specifying both the name (Genre) and the value (Genre name)
5. HTML Attributes for the link – in this case we don’t need to specify any, so we’ll just pass null
Putting that all together, here’s how we’ll write those links to the Browse page:
<ul> <% foreach (string genreName in Model.Genres) { %>
<li> <%: Html.ActionLink(genreName, "Browse", "Store", new { genre = genreName }, null)%>
</li> <% } %>
</ul>
Models and Data Access
Concepts:
- Use of EntityFramework for data access
- End-to-end parameter flow:
- Parameter passed to Controller Action via Routing
- Parameter passed to ViewModel in constructor
- ViewModel returned to View via ActionResult
- Requested data displayed on screen
So far, we’ve just been passing strings from URLs to Controller actions to Views. That’s a great way to lay the foundations, but now we’re ready to hook up a database. The tutorial text will cover creating the database using the free SQL Server Express edition, but all our code will also work with the full SQL Server. We’ll start by adding an App_Data directory to our project to hold our SQL Server Express database files. App_Data is a special directory in ASP.NET which already has the correct security access permissions for database access.
Right-click the project and select Add⇨Add ASP.NET Folder⇨App_Data.
Now we’ll add our database file. The database file is named MvcMusicStore.mdf and is included in the project downloads. Right-click the new App_Data folder, select Add⇨Existing Item… and browse to MvcMusicStore.mdf.
Now that the database has been added to the project, we’ll need code to read and write to the database. We’ll use Entity Framework data model to handle that. Right-click the Models directory and select Add⇨New Item⇨Data⇨ADO.NET Entity Data Model. Name the data model StoreDB.edmx and press the Add button.
The Entity Data Model Wizard first asks if you want to generate a model from a database or create an empty model. Select “Generate from database” and click the Next button.
Since we’re generating our model from a database, we’ll need to specify which database we want to use. The wizard’s smart enough to see that we’ve got a database in our App_Data folder, so it fills in the correct connection information for that database for us, and we can just click the Next button.
Check the Tables button and ensure that the “Include foreign key columns in the model” checkbox is checked. Change the Model Namespace to MvcMusicStore and press the Finish button.
This brings up an entity diagram for our database.
On the music side of things, we’re adding Artist to the Genre and Albums concepts we already looked at in the last chapter. Since we’re running a store, we’re also adding tables for Cart, Order, and OrderDetails.
Now that we have a real data model in place, we can delete the Album and Genre model classes we’ve been working with. Expand the Models directory, select Album.cs, and press the Delete key. Follow the same steps to delete Genre.cs.
Despite having deleted the Albums and Genre class, the project still builds and the pages still work.
Why?
Since our database tables have fields which include all the properties we were using in our Album and Genre classes earlier, our Entity Framework data model classes are a drop-in replacement.
While the Entity Framework designer displays the entities in a diagram format, they’re really just C# classes. Expand the StoreDB.edmx node in the Solution Explorer, and you’ll see a file called StoreDB.Designer.cs.
To demonstrate that (and because it’ll make our code look nicer), we’ll rename the object context class from MvcMusicStoreEntities to MusicStoreEntities. Right-click on the class name (MvcMusicStoreEntities) and select Refactor⇨Rename.
Change the class name to MusicStoreEntities and press the Apply button.
Querying the Database
Now let’s change our Store controller actions to call into our database. We’ll start by declaring a field on the StoreController to hold an instance of the MusicStoreEntities class, named storeDB:
public class StoreController : Controller
{
MusicStoreEntities storeDB = new MusicStoreEntities();
Store Index using a LINQ Query Expression
The MusicStoreEntities class exposes collection class for each table in our database, so we can query our Genre table using LINQ (language integrated query) query expressions. First we’ll update our Store Index page to read all Genre names in our database, as shown below:
//
// GET: /Store/
public ActionResult Index()
{
// Retrieve list of Genres from database var genres = from genre in storeDB.Genres select genre.Name;
// Set up our ViewModel
var viewModel = new StoreIndexViewModel()
{
Genres = genres.ToList(),
NumberOfGenres = genres.Count()
};
// Return the view
return View(viewModel);
}
No changes need to happen to our View template since we’re still returning the same StoreIndexViewModel we returned before, we’re just returning live data from our database now.
Store Browse, Details, and Index using a LINQ Extension Method
For the Store Browse, we’ll demonstrate an alternative to the LINQ query expression syntax we just looked at - LINQ Extension Methods. These both do the same thing under the hood, so you can use whichever syntax seems more natural for a particular query.
In this controller action, we’re searching for a Genre by name. We only expect one result, since we shouldn’t ever have two entries for the same Genre name, so we’ll use the Single extension method on the Genre object set, like this:
var genre = storeDB.Genres.Single(g => g.Name == “Disco”);
The Single method takes a Lambda expression as a parameter, which specifies that we want a single Genre object such that its name matches the value we’ve defined. In the case above, we’d be loading a single Genre object with a Name value matching Disco.
We’ll take advantage of an Entity Framework feature that allows us to specify other related entities we want loaded as well, called Query Result Shaping. We want to load the Albums for the matching Genre, so we’ll query from Genres.Include(“Albums”) to indicate that we want related albums as well. This is more efficient, since it will retrieve both our Genre and Album data in a single database request.
With the explanations out of the way, here’s how our updated Browse controller action looks:
//
// GET: /Store/Browse?Genre=Disco
public ActionResult Browse(string genre)
{
// Retrieve Genre from database var genreModel = storeDB.Genres.Include("Albums") .Single(g => g.Name == genre);
var viewModel = new StoreBrowseViewModel()
{
Genre = genreModel,
Albums = genreModel.Albums.ToList()
};
return View(viewModel);
}
Running our application and browsing to /Store/Browse?genre=Jazz shows that our results are now being pulled from the database.
We’ll make the same change to our Store Details page, replacing our dummy data with a database query which loads an Album whose ID matches the parameter value.
//
// GET: /Store/Details/5
public ActionResult Details(int id)
{
var album = storeDB.Albums.Single(a => a.AlbumId == id);
return View(album);
}
Edit forms and Validation
In the past chapter, we were loading data from our database for display. In this chapter, we’ll be editing data.
We’ll create a new controller called StoreManagerController. This controller will be handling Create and Update actions, so we’ll check the checkbox to “Add action methods for Create, Update, and Details scenarios.”
This generates a controller with stub methods for the controller actions we’ll be building, with TODO comments filled in to prompt us to put in our application specific logic.
public class StoreManagerController : Controller
{
//
// GET: /StoreManager/
public ActionResult Index()
{
return View();
}
//
// GET: /StoreManager/Details/5
public ActionResult Details(int id)
{
return View();
}
//
// GET: /StoreManager/Create
public ActionResult Create()
{
return View();
}
//
// POST: /StoreManager/Create
[HttpPost]
public ActionResult Create(FormCollection collection)
{
try
{
// TODO: Add insert logic here
return RedirectToAction("Index");
}
catch
{
return View();
}
}
}
We don’t need the Details controller action, so we can delete it. Then we’ll get to work on building out the other controller actions and views.
Customizing the Store Manager Index
As in our Store Controller, we’ll begin by adding a field on our StoreManagerController to hold an instance of our MusicStoreEntities.
public class StoreController : Controller
{
MusicStoreEntities storeDB = new MusicStoreEntities();
Now we can get started with the Store Manager Index page. This page will display a list of albums, so the controller action logic will be pretty similar to the Store Index controller action. We’ll use LINQ extension methods to retrieve all albums, including Genre and Artist information for display.
//
// GET: /StoreManager/
public ActionResult Index()
{
var albums = storeDB.Albums
.Include("Genre").Include("Artist")
.ToList();
return View(storeDB.Albums);
}
Now we can create the view. As before, we’ll right-click on the controller action code to bring up the Add View dialog. This view will use the List template and will be strongly-typed to our Album class, as shown below.
Scaffold View templates
We’re making use of the scaffold View template feature to quickly generate a simple View template which lists all fields in our Album model. It’s a quick way to get started on a strongly typed view. Rather than having to add in all the fields by hand, we can just modify the generated code.
Let’s look at the generated list of fields. Oh, and yes, this is using an HTML table. Remember that HTML tables, while a poor choice for site layout, are a perfect fit for displaying tabular data.
<table>
<tr>
<th></th>
<th>AlbumId</th>
<th>GenreId</th>
<th>ArtistId</th>
<th>Title</th>
<th>Price</th>
<th>AlbumArtUrl</th>
</tr> <% foreach (var item in Model) { %>
<tr>
<td> <%: Html.ActionLink("Edit", "Edit", new { id=item.AlbumId }) %> | <%: Html.ActionLink("Details", "Details", new { id=item.AlbumId })%> | <%: Html.ActionLink("Delete", "Delete", new { id=item.AlbumId })%>
</td> <td><%: item.AlbumId %></td>
<td><%: item.GenreId %></td> <td><%: item.ArtistId %></td> <td><%: item.Title %></td> <td><%: String.Format("{0:F}", item.Price) %></td> <td><%: item.AlbumArtUrl %></td>
</tr> <% } %>
</table>
Note: That this template is following the same coding practices we’ve been learning so far – using <%: to HTML encode our values, and using Html.ActionLink to generate links to other controller actions.
We just want to display Album Title, Artist, and Genre, so we can delete the AlbumId, Price, and Album Art URL columns. The GenreId and ArtistId aren’t near as useful as the Artist and Genre Names, so we’ll change them to display the linked class properties as follows:
<table>
<tr>
<th></th>
<th>Title</th>
<th>Artist</th>
<th>Genre</th>
</tr>
<% foreach (var item in Model) { %>
<tr>
<td> <%: Html.ActionLink("Edit", "Edit", new { id=item.AlbumId }) %> | <%: Html.ActionLink("Delete", "Delete", new { id=item.AlbumId })%>
</td> <td><%: item.Title %></td> <td><%: item.Artist.Name %></td> <td><%: item.Genre.Name %></td>
</tr>
<% } %>
</table>
You can run the application and browse to /StoreManager to see the list.
Using a custom HTML Helper to truncate text
We’ve got one potential issue with our Store Manager Index page. Our Album Title and Artist Name properties can both be long enough that they could throw off our table formatting. We’ll create a quick HTML Helper to allow us to easily truncate these and other properties in our Views.
Note: This topic is a bit advanced, so if it doesn’t make sense to you, don’t worry about it. Learning to write your own HTML Helpers can simplify your code, but it’s not a fundamental topic that you need to master to complete this tutorial.
Add a new directory named Helpers, and add a class to it named HtmlHelpers.cs.
Our HTML Helper will be extending System.Web.Mvc.HtmlHelpers, so we’ll need to add a using statement referencing System.Web.Mvc. Our helper class and method must both be static. Other than that, it’s pretty simple.
using System.Web.Mvc;
namespace MvcMusicStore.Helpers
{
public static class HtmlHelpers
{
public static string Truncate(this HtmlHelper helper, string input, int length)
{
if (input.Length <= length)
{
return input;
}
else
{
return input.Substring(0, length) + "...";
}
}
}
}
This helper method takes a string and a maximum length to allow. Now we need to let our view know about it by importing the namespace. We do that by using an <%@ Import statement, directly below the <%@ Page %> element, like this:
<%@PageLanguage="C#"MasterPageFile="~/Views/Shared/Site.Master"Inherits="System.Web.Mvc.ViewPage<IEnumerable<MvcMusicStore.Models.Album>>"%>
<%@Importamespace="MvcMusicStore.Helpers" %>
Now we can use our Truncate helper to ensure that both the Album Title and Artist Name properties are less than 25 characters. The complete view code using our new Truncate helper appears below.
<%@PageLanguage="C#"MasterPageFile="~/Views/Shared/Site.Master"Inherits="System.Web.Mvc.ViewPage<IEnumerable<MvcMusicStore.Models.Album>>"%><%@ImportNamespace="MvcMusicStore.Helpers" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Store Manager - All Albums
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Albums</h2>
<p> <%: Html.ActionLink("Create New Album", "Create") %>
</p>
<table>
<tr>
<th></th>
<th>Title</th>
<th>Artist</th>
<th>Genre</th>
</tr>
<% foreach (var item in Model) { %>
<tr>
<td> <%: Html.ActionLink("Edit", "Edit", new { id=item.AlbumId }) %> | <%: Html.ActionLink("Delete", "Delete", new { id=item.AlbumId })%>
</td> <td><%: Html.Truncate(item.Title, 25) %></td> <td><%: Html.Truncate(item.Artist.Name, 25) %></td> <td><%: item.Genre.Name %></td>
</tr>
<% } %>
</table>
</asp:Content>
Now when we view the Store Manager Index, the albums and titles are kept below our maximum lengths.
To be continue..............
Overview----
- Demonstrates ASP.NET MVC 3 Templating, Data Annotations, and Validation
- Demonstrates Razor syntax and advanced features
- Shows Client-Side Validation, jQuery, and use of AJAX helper methods
- Includes store browse, shopping cart, checkout, and membership
- Shows data access via Entity Framework 4
- Illustrates use of ViewModels
- This tutorial requires Visual Web Developer 2010 Express and ASP.NET 4.0 (both free) or Visual Studio 2010
USE [MvcMusicStore]
GO
ALTER TABLE [dbo].[Album] DROP CONSTRAINT [FK__Album__ArtistId__276EDEB3]
GO
ALTER TABLE [dbo].[Album] DROP CONSTRAINT [FK_Album_Genre]
GO
ALTER TABLE [dbo].[Cart] DROP CONSTRAINT [FK_Cart_Album]
GO
ALTER TABLE [dbo].[OrderDetail] DROP CONSTRAINT [FK__InvoiceLi__Invoi__2F10007B]
GO
ALTER TABLE [dbo].[OrderDetail] DROP CONSTRAINT [FK_InvoiceLine_Album]
GO
ALTER TABLE [dbo].[Cart] DROP CONSTRAINT [FK_Cart_Album]
GO
DROP TABLE [dbo].[Cart]
GO
ALTER TABLE [dbo].[OrderDetail] DROP CONSTRAINT [FK__InvoiceLi__Invoi__2F10007B]
GO
ALTER TABLE [dbo].[OrderDetail] DROP CONSTRAINT [FK_InvoiceLine_Album]
GO
DROP TABLE [dbo].[OrderDetail]
GO
ALTER TABLE [dbo].[Album] DROP CONSTRAINT [FK__Album__ArtistId__276EDEB3]
GO
ALTER TABLE [dbo].[Album] DROP CONSTRAINT [FK_Album_Genre]
GO
ALTER TABLE [dbo].[Album] DROP CONSTRAINT [DF_Album_AlbumArtUrl]
GO
DROP TABLE [dbo].[Album]
GO
DROP TABLE [dbo].[Artist]
GO
DROP TABLE [dbo].[Genre]
GO
DROP TABLE [dbo].[Order]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Order](
[OrderId] [int] IDENTITY(1,1) NOT NULL,
[OrderDate] [datetime] NOT NULL,
[Username] [nvarchar](256) NULL,
[FirstName] [nvarchar](160) NULL,
[LastName] [nvarchar](160) NULL,
[Address] [nvarchar](70) NULL,
[City] [nvarchar](40) NULL,
[State] [nvarchar](40) NULL,
[PostalCode] [nvarchar](10) NULL,
[Country] [nvarchar](40) NULL,
[Phone] [nvarchar](24) NULL,
[Email] [nvarchar](160) NULL,
[Total] [numeric](10, 2) NOT NULL,
CONSTRAINT [PK__Invoice__D796AAB51A14E395] PRIMARY KEY CLUSTERED
(
[OrderId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IPK_Invoice] ON [dbo].[Order]
(
[OrderId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Genre](
[GenreId] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](120) NULL,
[Description] [nvarchar](4000) NULL,
PRIMARY KEY CLUSTERED
(
[GenreId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IPK_Genre] ON [dbo].[Genre]
(
[GenreId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
SET IDENTITY_INSERT [dbo].[Genre] ON
INSERT [dbo].[Genre] ([GenreId], [Name], [Description]) VALUES (1, N'Rock', N'Rock and Roll is a form of rock music developed in the 1950s and 1960s. Rock music combines many kinds of music from the United States, such as country music, folk music, church music, work songs, blues and jazz.')
INSERT [dbo].[Genre] ([GenreId], [Name], [Description]) VALUES (2, N'Jazz', N'Jazz is a type of music which was invented in the United States. Jazz music combines African-American music with European music. Some common jazz instruments include the saxophone, trumpet, piano, double bass, and drums.')
INSERT [dbo].[Genre] ([GenreId], [Name], [Description]) VALUES (3, N'Metal', N'Heavy Metal is a loud, aggressive style of Rock music. The bands who play heavy-metal music usually have one or two guitars, a bass guitar and drums. In some bands, electronic keyboards, organs, or other instruments are used. Heavy metal songs are loud and powerful-sounding, and have strong rhythms that are repeated. There are many different types of Heavy Metal, some of which are described below. Heavy metal bands sometimes dress in jeans, leather jackets, and leather boots, and have long hair. Heavy metal bands sometimes behave in a dramatic way when they play their instruments or sing. However, many heavy metal bands do not like to do this.')
INSERT [dbo].[Genre] ([GenreId], [Name], [Description]) VALUES (4, N'Alternative', N'Alternative rock is a type of rock music that became popular in the 1980s and became widely popular in the 1990s. Alternative rock is made up of various subgenres that have come out of the indie music scene since the 1980s, such as grunge, indie rock, Britpop, gothic rock, and indie pop. These genres are sorted by their collective types of punk, which laid the groundwork for alternative music in the 1970s.')
INSERT [dbo].[Genre] ([GenreId], [Name], [Description]) VALUES (5, N'Disco', N'Disco is a style of pop music that was popular in the mid-1970s. Disco music has a strong beat that people can dance to. People usually dance to disco music at bars called disco clubs. The word "disco" is also used to refer to the style of dancing that people do to disco music, or to the style of clothes that people wear to go disco dancing. Disco was at its most popular in the United States and Europe in the 1970s and early 1980s. Disco was brought into the mainstream by the hit movie Saturday Night Fever, which was released in 1977. This movie, which starred John Travolta, showed people doing disco dancing. Many radio stations played disco in the late 1970s.')
INSERT [dbo].[Genre] ([GenreId], [Name], [Description]) VALUES (6, N'Blues', N'The blues is a form of music that started in the United States during the start of the 20th century. It was started by former African slaves from spirituals, praise songs, and chants. The first blues songs were called Delta blues. These songs came from the area near the mouth of the Mississippi River.')
INSERT [dbo].[Genre] ([GenreId], [Name], [Description]) VALUES (7, N'Latin', N'Latin American music is the music of all countries in Latin America (and the Caribbean) and comes in many varieties. Latin America is home to musical styles such as the simple, rural conjunto music of northern Mexico, the sophisticated habanera of Cuba, the rhythmic sounds of the Puerto Rican plena, the symphonies of Heitor Villa-Lobos, and the simple and moving Andean flute. Music has played an important part recently in Latin America''s politics, the nueva canción movement being a prime example. Latin music is very diverse, with the only truly unifying thread being the use of Latin-derived languages, predominantly the Spanish language, the Portuguese language in Brazil, and to a lesser extent, Latin-derived creole languages, such as those found in Haiti.')
INSERT [dbo].[Genre] ([GenreId], [Name], [Description]) VALUES (8, N'Reggae', N'Reggae is a music genre first developed in Jamaica in the late 1960s. While sometimes used in a broader sense to refer to most types of Jamaican music, the term reggae more properly denotes a particular music style that originated following on the development of ska and rocksteady.')
INSERT [dbo].[Genre] ([GenreId], [Name], [Description]) VALUES (9, N'Pop', N'Pop music is a music genre that developed from the mid-1950s as a softer alternative to rock ''n'' roll and later to rock music. It has a focus on commercial recording, often oriented towards a youth market, usually through the medium of relatively short and simple love songs. While these basic elements of the genre have remained fairly constant, pop music has absorbed influences from most other forms of popular music, particularly borrowing from the development of rock music, and utilizing key technological innovations to produce new variations on existing themes.')
INSERT [dbo].[Genre] ([GenreId], [Name], [Description]) VALUES (10, N'Classical', N'Classical music is a very general term which normally refers to the standard music of countries in the Western world. It is music that has been composed by musicians who are trained in the art of writing music (composing) and written down in music notation so that other musicians can play it. Classical music can also be described as "art music" because great art (skill) is needed to compose it and to perform it well. Classical music differs from pop music because it is not made just in order to be popular for a short time or just to be a commercial success.')
SET IDENTITY_INSERT [dbo].[Genre] OFF
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Artist](
[ArtistId] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](120) NULL,
PRIMARY KEY CLUSTERED
(
[ArtistId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IPK_Artist] ON [dbo].[Artist]
(
[ArtistId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
SET IDENTITY_INSERT [dbo].[Artist] ON
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (1, N'AC/DC')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (2, N'Accept')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (3, N'Aerosmith')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (4, N'Alanis Morissette')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (5, N'Alice In Chains')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (6, N'Antônio Carlos Jobim')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (7, N'Apocalyptica')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (8, N'Audioslave')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (10, N'Billy Cobham')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (11, N'Black Label Society')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (12, N'Black Sabbath')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (14, N'Bruce Dickinson')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (15, N'Buddy Guy')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (16, N'Caetano Veloso')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (17, N'Chico Buarque')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (18, N'Chico Science & Nação Zumbi')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (19, N'Cidade Negra')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (20, N'Cláudio Zoli')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (21, N'Various Artists')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (22, N'Led Zeppelin')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (23, N'Frank Zappa & Captain Beefheart')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (24, N'Marcos Valle')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (27, N'Gilberto Gil')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (37, N'Ed Motta')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (41, N'Elis Regina')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (42, N'Milton Nascimento')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (46, N'Jorge Ben')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (50, N'Metallica')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (51, N'Queen')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (52, N'Kiss')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (53, N'Spyro Gyra')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (55, N'David Coverdale')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (56, N'Gonzaguinha')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (58, N'Deep Purple')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (59, N'Santana')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (68, N'Miles Davis')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (72, N'Vinícius De Moraes')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (76, N'Creedence Clearwater Revival')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (77, N'Cássia Eller')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (79, N'Dennis Chambers')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (80, N'Djavan')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (81, N'Eric Clapton')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (82, N'Faith No More')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (83, N'Falamansa')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (84, N'Foo Fighters')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (86, N'Funk Como Le Gusta')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (87, N'Godsmack')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (88, N'Guns N'' Roses')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (89, N'Incognito')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (90, N'Iron Maiden')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (92, N'Jamiroquai')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (94, N'Jimi Hendrix')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (95, N'Joe Satriani')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (96, N'Jota Quest')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (98, N'Judas Priest')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (99, N'Legião Urbana')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (100, N'Lenny Kravitz')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (101, N'Lulu Santos')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (102, N'Marillion')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (103, N'Marisa Monte')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (105, N'Men At Work')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (106, N'Motörhead')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (109, N'Mötley Crüe')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (110, N'Nirvana')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (111, N'O Terço')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (112, N'Olodum')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (113, N'Os Paralamas Do Sucesso')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (114, N'Ozzy Osbourne')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (115, N'Page & Plant')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (117, N'Paul D''Ianno')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (118, N'Pearl Jam')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (120, N'Pink Floyd')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (124, N'R.E.M.')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (126, N'Raul Seixas')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (127, N'Red Hot Chili Peppers')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (128, N'Rush')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (130, N'Skank')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (132, N'Soundgarden')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (133, N'Stevie Ray Vaughan & Double Trouble')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (134, N'Stone Temple Pilots')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (135, N'System Of A Down')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (136, N'Terry Bozzio, Tony Levin & Steve Stevens')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (137, N'The Black Crowes')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (139, N'The Cult')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (140, N'The Doors')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (141, N'The Police')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (142, N'The Rolling Stones')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (144, N'The Who')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (145, N'Tim Maia')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (150, N'U2')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (151, N'UB40')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (152, N'Van Halen')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (153, N'Velvet Revolver')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (155, N'Zeca Pagodinho')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (157, N'Dread Zeppelin')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (179, N'Scorpions')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (196, N'Cake')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (197, N'Aisha Duo')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (200, N'The Posies')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (201, N'Luciana Souza/Romero Lubambo')
GO
print 'Processed 100 total records'
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (202, N'Aaron Goldberg')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (203, N'Nicolaus Esterhazy Sinfonia')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (204, N'Temple of the Dog')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (205, N'Chris Cornell')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (206, N'Alberto Turco & Nova Schola Gregoriana')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (208, N'English Concert & Trevor Pinnock')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (211, N'Wilhelm Kempff')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (212, N'Yo-Yo Ma')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (213, N'Scholars Baroque Ensemble')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (217, N'Royal Philharmonic Orchestra & Sir Thomas Beecham')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (219, N'Britten Sinfonia, Ivor Bolton & Lesley Garrett')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (221, N'Sir Georg Solti & Wiener Philharmoniker')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (223, N'London Symphony Orchestra & Sir Charles Mackerras')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (224, N'Barry Wordsworth & BBC Concert Orchestra')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (226, N'Eugene Ormandy')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (229, N'Boston Symphony Orchestra & Seiji Ozawa')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (230, N'Aaron Copland & London Symphony Orchestra')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (231, N'Ton Koopman')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (232, N'Sergei Prokofiev & Yuri Temirkanov')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (233, N'Chicago Symphony Orchestra & Fritz Reiner')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (234, N'Orchestra of The Age of Enlightenment')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (236, N'James Levine')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (237, N'Berliner Philharmoniker & Hans Rosbaud')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (238, N'Maurizio Pollini')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (240, N'Gustav Mahler')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (242, N'Edo de Waart & San Francisco Symphony')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (244, N'Choir Of Westminster Abbey & Simon Preston')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (245, N'Michael Tilson Thomas & San Francisco Symphony')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (247, N'The King''s Singers')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (248, N'Berliner Philharmoniker & Herbert Von Karajan')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (250, N'Christopher O''Riley')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (251, N'Fretwork')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (252, N'Amy Winehouse')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (253, N'Calexico')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (255, N'Yehudi Menuhin')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (258, N'Les Arts Florissants & William Christie')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (259, N'The 12 Cellists of The Berlin Philharmonic')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (260, N'Adrian Leaper & Doreen de Feis')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (261, N'Roger Norrington, London Classical Players')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (264, N'Kent Nagano and Orchestre de l''Opéra de Lyon')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (265, N'Julian Bream')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (266, N'Martin Roscoe')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (267, N'Göteborgs Symfoniker & Neeme Järvi')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (270, N'Gerald Moore')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (271, N'Mela Tenenbaum, Pro Musica Prague & Richard Kapp')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (274, N'Nash Ensemble')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (276, N'Chic')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (277, N'Anita Ward')
INSERT [dbo].[Artist] ([ArtistId], [Name]) VALUES (278, N'Donna Summer')
SET IDENTITY_INSERT [dbo].[Artist] OFF
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Album](
[AlbumId] [int] IDENTITY(1,1) NOT NULL,
[GenreId] [int] NOT NULL,
[ArtistId] [int] NOT NULL,
[Title] [nvarchar](160) NOT NULL,
[Price] [numeric](10, 2) NOT NULL,
[AlbumArtUrl] [nvarchar](1024) NULL CONSTRAINT [DF_Album_AlbumArtUrl] DEFAULT (N'/Content/Images/placeholder.gif'),
CONSTRAINT [PK__Album__97B4BE370AD2A005] PRIMARY KEY CLUSTERED
(
[AlbumId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IFK_Artist_Album] ON [dbo].[Album]
(
[ArtistId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IPK_ProductItem] ON [dbo].[Album]
(
[AlbumId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
SET IDENTITY_INSERT [dbo].[Album] ON
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (386, 1, 1, N'For Those About To Rock We Salute You', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (387, 1, 1, N'Let There Be Rock', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (388, 1, 100, N'Greatest Hits', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (389, 1, 102, N'Misplaced Childhood', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (390, 1, 105, N'The Best Of Men At Work', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (392, 1, 110, N'Nevermind', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (393, 1, 111, N'Compositores', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (394, 1, 114, N'Bark at the Moon (Remastered)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (395, 1, 114, N'Blizzard of Ozz', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (396, 1, 114, N'Diary of a Madman (Remastered)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (397, 1, 114, N'No More Tears (Remastered)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (398, 1, 114, N'Speak of the Devil', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (399, 1, 115, N'Walking Into Clarksdale', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (400, 1, 117, N'The Beast Live', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (401, 1, 118, N'Live On Two Legs [Live]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (402, 1, 118, N'Riot Act', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (403, 1, 118, N'Ten', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (404, 1, 118, N'Vs.', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (405, 1, 120, N'Dark Side Of The Moon', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (406, 1, 124, N'New Adventures In Hi-Fi', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (407, 1, 126, N'Raul Seixas', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (408, 1, 127, N'By The Way', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (409, 1, 127, N'Californication', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (410, 1, 128, N'Retrospective I (1974-1980)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (411, 1, 130, N'Maquinarama', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (412, 1, 130, N'O Samba Poconé', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (413, 1, 132, N'A-Sides', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (414, 1, 134, N'Core', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (415, 1, 136, N'[1997] Black Light Syndrome', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (416, 1, 139, N'Beyond Good And Evil', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (418, 1, 140, N'The Doors', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (419, 1, 141, N'The Police Greatest Hits', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (420, 1, 142, N'Hot Rocks, 1964-1971 (Disc 1)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (421, 1, 142, N'No Security', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (422, 1, 142, N'Voodoo Lounge', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (423, 1, 144, N'My Generation - The Very Best Of The Who', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (424, 1, 150, N'Achtung Baby', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (425, 1, 150, N'B-Sides 1980-1990', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (426, 1, 150, N'How To Dismantle An Atomic Bomb', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (427, 1, 150, N'Pop', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (428, 1, 150, N'Rattle And Hum', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (429, 1, 150, N'The Best Of 1980-1990', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (430, 1, 150, N'War', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (431, 1, 150, N'Zooropa', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (432, 1, 152, N'Diver Down', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (433, 1, 152, N'The Best Of Van Halen, Vol. I', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (434, 1, 152, N'Van Halen III', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (435, 1, 152, N'Van Halen', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (436, 1, 153, N'Contraband', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (437, 1, 157, N'Un-Led-Ed', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (439, 1, 2, N'Balls to the Wall', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (440, 1, 2, N'Restless and Wild', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (441, 1, 200, N'Every Kind of Light', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (442, 1, 22, N'BBC Sessions [Disc 1] [Live]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (443, 1, 22, N'BBC Sessions [Disc 2] [Live]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (444, 1, 22, N'Coda', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (445, 1, 22, N'Houses Of The Holy', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (446, 1, 22, N'In Through The Out Door', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (447, 1, 22, N'IV', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (448, 1, 22, N'Led Zeppelin I', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (449, 1, 22, N'Led Zeppelin II', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (450, 1, 22, N'Led Zeppelin III', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (451, 1, 22, N'Physical Graffiti [Disc 1]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (452, 1, 22, N'Physical Graffiti [Disc 2]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (453, 1, 22, N'Presence', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (454, 1, 22, N'The Song Remains The Same (Disc 1)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (455, 1, 22, N'The Song Remains The Same (Disc 2)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (456, 1, 23, N'Bongo Fury', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (457, 1, 3, N'Big Ones', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (458, 1, 4, N'Jagged Little Pill', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (459, 1, 5, N'Facelift', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (460, 1, 51, N'Greatest Hits I', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (461, 1, 51, N'Greatest Hits II', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (462, 1, 51, N'News Of The World', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (463, 1, 52, N'Greatest Kiss', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (464, 1, 52, N'Unplugged [Live]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (465, 1, 55, N'Into The Light', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (466, 1, 58, N'Come Taste The Band', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (467, 1, 58, N'Deep Purple In Rock', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (468, 1, 58, N'Fireball', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (469, 1, 58, N'Machine Head', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (470, 1, 58, N'MK III The Final Concerts [Disc 1]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (471, 1, 58, N'Purpendicular', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (472, 1, 58, N'Slaves And Masters', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (473, 1, 58, N'Stormbringer', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (474, 1, 58, N'The Battle Rages On', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (475, 1, 58, N'The Final Concerts (Disc 2)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (476, 1, 59, N'Santana - As Years Go By', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (477, 1, 59, N'Santana Live', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (478, 1, 59, N'Supernatural', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (479, 1, 76, N'Chronicle, Vol. 1', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (480, 1, 76, N'Chronicle, Vol. 2', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (481, 1, 8, N'Audioslave', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (482, 1, 82, N'King For A Day Fool For A Lifetime', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (483, 1, 84, N'In Your Honor [Disc 1]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (484, 1, 84, N'In Your Honor [Disc 2]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (485, 1, 84, N'The Colour And The Shape', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (486, 1, 88, N'Appetite for Destruction', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (487, 1, 88, N'Use Your Illusion I', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (488, 1, 90, N'A Matter of Life and Death', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
GO
print 'Processed 100 total records'
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (489, 1, 90, N'Brave New World', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (490, 1, 90, N'Fear Of The Dark', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (491, 1, 90, N'Live At Donington 1992 (Disc 1)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (492, 1, 90, N'Live At Donington 1992 (Disc 2)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (493, 1, 90, N'Rock In Rio [CD2]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (494, 1, 90, N'The Number of The Beast', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (495, 1, 90, N'The X Factor', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (496, 1, 90, N'Virtual XI', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (497, 1, 92, N'Emergency On Planet Earth', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (498, 1, 94, N'Are You Experienced?', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (499, 1, 95, N'Surfing with the Alien (Remastered)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (500, 10, 203, N'The Best of Beethoven', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (504, 10, 208, N'Pachelbel: Canon & Gigue', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (507, 10, 211, N'Bach: Goldberg Variations', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (508, 10, 212, N'Bach: The Cello Suites', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (509, 10, 213, N'Handel: The Messiah (Highlights)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (513, 10, 217, N'Haydn: Symphonies 99 - 104', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (515, 10, 219, N'A Soprano Inspired', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (517, 10, 221, N'Wagner: Favourite Overtures', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (519, 10, 223, N'Tchaikovsky: The Nutcracker', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (520, 10, 224, N'The Last Night of the Proms', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (523, 10, 226, N'Respighi:Pines of Rome', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (524, 10, 226, N'Strauss: Waltzes', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (525, 10, 229, N'Carmina Burana', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (526, 10, 230, N'A Copland Celebration, Vol. I', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (527, 10, 231, N'Bach: Toccata & Fugue in D Minor', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (528, 10, 232, N'Prokofiev: Symphony No.1', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (529, 10, 233, N'Scheherazade', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (530, 10, 234, N'Bach: The Brandenburg Concertos', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (532, 10, 236, N'Mascagni: Cavalleria Rusticana', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (533, 10, 237, N'Sibelius: Finlandia', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (537, 10, 242, N'Adams, John: The Chairman Dances', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (539, 10, 245, N'Berlioz: Symphonie Fantastique', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (540, 10, 245, N'Prokofiev: Romeo & Juliet', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (542, 10, 247, N'English Renaissance', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (544, 10, 248, N'Mozart: Symphonies Nos. 40 & 41', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (546, 10, 250, N'SCRIABIN: Vers la flamme', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (548, 10, 255, N'Bartok: Violin & Viola Concertos', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (551, 10, 259, N'South American Getaway', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (552, 10, 260, N'Górecki: Symphony No. 3', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (553, 10, 261, N'Purcell: The Fairy Queen', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (556, 10, 264, N'Weill: The Seven Deadly Sins', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (558, 10, 266, N'Szymanowski: Piano Works, Vol. 1', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (559, 10, 267, N'Nielsen: The Six Symphonies', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (562, 10, 274, N'Mozart: Chamber Music', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (563, 2, 10, N'The Best Of Billy Cobham', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (564, 2, 197, N'Quiet Songs', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (565, 2, 202, N'Worlds', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (566, 2, 27, N'Quanta Gente Veio ver--Bônus De Carnaval', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (567, 2, 53, N'Heart of the Night', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (568, 2, 53, N'Morning Dance', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (569, 2, 6, N'Warner 25 Anos', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (570, 2, 68, N'Miles Ahead', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (571, 2, 68, N'The Essential Miles Davis [Disc 1]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (572, 2, 68, N'The Essential Miles Davis [Disc 2]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (573, 2, 79, N'Outbreak', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (574, 2, 89, N'Blue Moods', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (575, 3, 100, N'Greatest Hits', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (576, 3, 106, N'Ace Of Spades', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (577, 3, 109, N'Motley Crue Greatest Hits', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (578, 3, 11, N'Alcohol Fueled Brewtality Live! [Disc 1]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (579, 3, 11, N'Alcohol Fueled Brewtality Live! [Disc 2]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (580, 3, 114, N'Tribute', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (581, 3, 12, N'Black Sabbath Vol. 4 (Remaster)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (582, 3, 12, N'Black Sabbath', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (583, 3, 135, N'Mezmerize', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (584, 3, 14, N'Chemical Wedding', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (585, 3, 50, N'...And Justice For All', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (586, 3, 50, N'Black Album', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (587, 3, 50, N'Garage Inc. (Disc 1)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (588, 3, 50, N'Garage Inc. (Disc 2)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (589, 3, 50, N'Load', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (590, 3, 50, N'Master Of Puppets', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (591, 3, 50, N'ReLoad', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (592, 3, 50, N'Ride The Lightning', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (593, 3, 50, N'St. Anger', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (594, 3, 7, N'Plays Metallica By Four Cellos', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (595, 3, 87, N'Faceless', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (596, 3, 88, N'Use Your Illusion II', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (597, 3, 90, N'A Real Dead One', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (598, 3, 90, N'A Real Live One', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (599, 3, 90, N'Live After Death', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (600, 3, 90, N'No Prayer For The Dying', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (601, 3, 90, N'Piece Of Mind', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (602, 3, 90, N'Powerslave', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (603, 3, 90, N'Rock In Rio [CD1]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (604, 3, 90, N'Rock In Rio [CD2]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (605, 3, 90, N'Seventh Son of a Seventh Son', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (606, 3, 90, N'Somewhere in Time', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (607, 3, 90, N'The Number of The Beast', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (608, 3, 98, N'Living After Midnight', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (609, 4, 196, N'Cake: B-Sides and Rarities', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (610, 4, 204, N'Temple of the Dog', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (611, 4, 205, N'Carry On', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (612, 4, 253, N'Carried to Dust (Bonus Track Version)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (613, 4, 8, N'Revelations', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (614, 6, 133, N'In Step', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (615, 6, 137, N'Live [Disc 1]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (616, 6, 137, N'Live [Disc 2]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (618, 6, 81, N'The Cream Of Clapton', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (619, 6, 81, N'Unplugged', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
GO
print 'Processed 200 total records'
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (620, 6, 90, N'Iron Maiden', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (623, 7, 103, N'Barulhinho Bom', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (624, 7, 112, N'Olodum', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (625, 7, 113, N'Acústico MTV', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (626, 7, 113, N'Arquivo II', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (627, 7, 113, N'Arquivo Os Paralamas Do Sucesso', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (628, 7, 145, N'Serie Sem Limite (Disc 1)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (629, 7, 145, N'Serie Sem Limite (Disc 2)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (630, 7, 155, N'Ao Vivo [IMPORT]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (631, 7, 16, N'Prenda Minha', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (632, 7, 16, N'Sozinho Remix Ao Vivo', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (633, 7, 17, N'Minha Historia', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (634, 7, 18, N'Afrociberdelia', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (635, 7, 18, N'Da Lama Ao Caos', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (636, 7, 20, N'Na Pista', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (637, 7, 201, N'Duos II', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (638, 7, 21, N'Sambas De Enredo 2001', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (639, 7, 21, N'Vozes do MPB', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (640, 7, 24, N'Chill: Brazil (Disc 1)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (641, 7, 27, N'Quanta Gente Veio Ver (Live)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (642, 7, 37, N'The Best of Ed Motta', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (643, 7, 41, N'Elis Regina-Minha História', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (644, 7, 42, N'Milton Nascimento Ao Vivo', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (645, 7, 42, N'Minas', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (646, 7, 46, N'Jorge Ben Jor 25 Anos', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (647, 7, 56, N'Meus Momentos', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (648, 7, 6, N'Chill: Brazil (Disc 2)', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (649, 7, 72, N'Vinicius De Moraes', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (651, 7, 77, N'Cássia Eller - Sem Limite [Disc 1]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (652, 7, 80, N'Djavan Ao Vivo - Vol. 02', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (653, 7, 80, N'Djavan Ao Vivo - Vol. 1', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (654, 7, 81, N'Unplugged', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (655, 7, 83, N'Deixa Entrar', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (656, 7, 86, N'Roda De Funk', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (657, 7, 96, N'Jota Quest-1995', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (659, 7, 99, N'Mais Do Mesmo', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (660, 8, 100, N'Greatest Hits', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (661, 8, 151, N'UB40 The Best Of - Volume Two [UK]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (662, 8, 19, N'Acústico MTV [Live]', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (663, 8, 19, N'Cidade Negra - Hits', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (665, 9, 21, N'Axé Bahia 2001', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (666, 9, 252, N'Frank', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (667, 5, 276, N'Le Freak', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (668, 5, 278, N'MacArthur Park Suite', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
INSERT [dbo].[Album] ([AlbumId], [GenreId], [ArtistId], [Title], [Price], [AlbumArtUrl]) VALUES (669, 5, 277, N'Ring My Bell', CAST(8.99 AS Numeric(10, 2)), N'/Content/Images/placeholder.gif')
SET IDENTITY_INSERT [dbo].[Album] OFF
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[OrderDetail](
[OrderDetailId] [int] IDENTITY(1,1) NOT NULL,
[OrderId] [int] NOT NULL,
[AlbumId] [int] NOT NULL,
[Quantity] [int] NOT NULL,
[UnitPrice] [numeric](10, 2) NOT NULL,
CONSTRAINT [PK__InvoiceL__0D760AD91DE57479] PRIMARY KEY CLUSTERED
(
[OrderDetailId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IFK_Invoice_InvoiceLine] ON [dbo].[OrderDetail]
(
[OrderId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IPK_InvoiceLine] ON [dbo].[OrderDetail]
(
[OrderDetailId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Cart](
[RecordId] [int] IDENTITY(1,1) NOT NULL,
[CartId] [varchar](50) NOT NULL,
[AlbumId] [int] NOT NULL,
[Count] [int] NOT NULL,
[DateCreated] [datetime] NOT NULL,
CONSTRAINT [PK_Cart] PRIMARY KEY CLUSTERED
(
[RecordId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[Album] WITH CHECK ADD CONSTRAINT [FK__Album__ArtistId__276EDEB3] FOREIGN KEY([ArtistId])
REFERENCES [dbo].[Artist] ([ArtistId])
GO
ALTER TABLE [dbo].[Album] CHECK CONSTRAINT [FK__Album__ArtistId__276EDEB3]
GO
ALTER TABLE [dbo].[Album] WITH CHECK ADD CONSTRAINT [FK_Album_Genre] FOREIGN KEY([GenreId])
REFERENCES [dbo].[Genre] ([GenreId])
GO
ALTER TABLE [dbo].[Album] CHECK CONSTRAINT [FK_Album_Genre]
GO
ALTER TABLE [dbo].[Cart] WITH CHECK ADD CONSTRAINT [FK_Cart_Album] FOREIGN KEY([AlbumId])
REFERENCES [dbo].[Album] ([AlbumId])
GO
ALTER TABLE [dbo].[Cart] CHECK CONSTRAINT [FK_Cart_Album]
GO
ALTER TABLE [dbo].[OrderDetail] WITH CHECK ADD CONSTRAINT [FK__InvoiceLi__Invoi__2F10007B] FOREIGN KEY([OrderId])
REFERENCES [dbo].[Order] ([OrderId])
GO
ALTER TABLE [dbo].[OrderDetail] CHECK CONSTRAINT [FK__InvoiceLi__Invoi__2F10007B]
GO
ALTER TABLE [dbo].[OrderDetail] WITH CHECK ADD CONSTRAINT [FK_InvoiceLine_Album] FOREIGN KEY([AlbumId])
REFERENCES [dbo].[Album] ([AlbumId])
GO
ALTER TABLE [dbo].[OrderDetail] CHECK CONSTRAINT [FK_InvoiceLine_Album]
GO
Comments
Post a Comment