用命令文件生成数据库的脚本

1、createData.cmd

 

@Echo Off

REM ***************************************************************************
REM **        File: CreateDatabase.cmd
REM **        Name: Database Setup
REM **        Desc: Database setup batch file.
REM **
REM **        Date: 1/12/2002
REM **
REM **************************************************************************/

REM Use the following section to set the server and sa password
REM of the SQL Server on which you want to create the database.
set SERVER=localhost
set LOGIN=sa
set PWD=11111111
set DBNAME=petshop_j2ee

@Echo.
@Echo *******************************************************************************
@Echo *         PetShop Blueprint Application Database Setup                        *
@Echo *                                                                             *
@Echo *                                                                             *
@Echo * This script will create the PetShop database and database objects.          *
@Echo * If you wish to cancel, press [CTRL]-C and terminate the batch job.          *
@Echo *                                                                             *
@Echo *******************************************************************************
@Echo.
pause

@Echo.
@Echo.
@Echo *******************************************************************************
@Echo * Creating the Database and Inserting the Data                               *
@Echo *******************************************************************************
@Echo.
osql -S %SERVER% -U %LOGIN% -P %PWD% -d master -i PetShop_Schema.sql


@Echo.
@Echo *******************************************************************************
@Echo *                                                                             *
@Echo * Database Setup Script Complete                                              *
@Echo *                                                                             *
@Echo *******************************************************************************
@Echo.
pause

 

2、PetShop_Schema.sql

/******************************************************************************
** File: PetShop_Schema.sql
** Name: Physical Database Schema SQL Script
** Desc: This script will create the PetShop database schema
**
**
*******************************************************************************/

IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'petshop_j2ee')
 DROP DATABASE petshop_j2ee
GO


CREATE DATABASE petshop_j2ee
GO


exec sp_dboption N'petshop_j2ee', N'autoclose', N'false'
GO
exec sp_dboption N'petshop_j2ee', N'bulkcopy', N'false'
GO
exec sp_dboption N'petshop_j2ee', N'trunc. log', N'false'
GO
exec sp_dboption N'petshop_j2ee', N'torn page detection', N'true'
GO
exec sp_dboption N'petshop_j2ee', N'read only', N'false'
GO
exec sp_dboption N'petshop_j2ee', N'dbo use', N'false'
GO
exec sp_dboption N'petshop_j2ee', N'single', N'false'
GO
exec sp_dboption N'petshop_j2ee', N'autoshrink', N'false'
GO
exec sp_dboption N'petshop_j2ee', N'ANSI null default', N'false'
GO
exec sp_dboption N'petshop_j2ee', N'recursive triggers', N'false'
GO
exec sp_dboption N'petshop_j2ee', N'ANSI nulls', N'false'
GO
exec sp_dboption N'petshop_j2ee', N'concat null yields null', N'false'
GO
exec sp_dboption N'petshop_j2ee', N'cursor close on commit', N'false'
GO
exec sp_dboption N'petshop_j2ee', N'default to local cursor', N'false'
GO
exec sp_dboption N'petshop_j2ee', N'quoted identifier', N'false'
GO
exec sp_dboption N'petshop_j2ee', N'ANSI warnings', N'false'
GO
exec sp_dboption N'petshop_j2ee', N'auto create statistics', N'true'
GO
exec sp_dboption N'petshop_j2ee', N'auto update statistics', N'true'
GO


use petshop_j2ee
GO

BEGIN TRANSACTION
GO

CREATE TABLE userAccount (userId varchar(80), password varchar(25), email varchar(80), firstName varchar(80), lastName varchar(80), address1 varchar(80), address2 varchar(40), city varchar(80), state varchar(80), zip varchar(20), country varchar(20), phone varchar(80), languagePreference varchar(80), categoryId varchar(80), myListOptions bit, bannerOptions bit, recordVersion uniqueidentifier NOT NULL DEFAULT NEWID(), PRIMARY KEY(userId) )
GO

INSERT INTO userAccount (userId, password , email, firstName, lastName, address1, address2, city, state, zip, country, phone, languagePreference, categoryId, myListOptions, bannerOptions) VALUES ('j2ee', 'j2eepass', 'yourname@yourdomain.com', 'ABC', 'XYX', '901 San Antonio Road', 'UCUP02-666', 'Palo Alto', 'CA', '94303', 'USA', '555-555-5555', 'en', 'DOGS', 1, 1)
GO

 

CREATE TABLE bannerData (categoryId varchar(80), bannerName varchar(80) NOT NULL, PRIMARY KEY(categoryId) )
GO

INSERT INTO bannerData (categoryId, bannerName) VALUES ('BIRDS', 'banner_birds.gif')
GO
INSERT INTO bannerData (categoryId, bannerName) VALUES ('CATS', 'banner_cats.gif')
GO
INSERT INTO bannerData (categoryId, bannerName) VALUES ('DOGS', 'banner_dogs.gif')
GO
INSERT INTO bannerData (categoryId, bannerName) VALUES ('FISH', 'banner_fish.gif')
GO
INSERT INTO bannerData (categoryId, bannerName) VALUES ('REPTILES', 'banner_reptiles.gif')
GO

 

CREATE TABLE category (categoryId varchar(10), PRIMARY KEY(categoryId) )
GO

INSERT INTO category (categoryId) VALUES ('BIRDS')
GO
INSERT INTO category (categoryId) VALUES ('CATS')
GO
INSERT INTO category (categoryId) VALUES ('DOGS')
GO
INSERT INTO category (categoryId) VALUES ('FISH')
GO
INSERT INTO category (categoryId) VALUES ('REPTILES')
GO

 

CREATE TABLE categoryDetail (categoryId varchar(10), locale varchar(10) NOT NULL, name varchar(80) NOT NULL, PRIMARY KEY(categoryId, locale) )
GO

INSERT INTO categoryDetail (categoryId, locale, name) VALUES ('BIRDS', 'en', 'Birds')
GO
INSERT INTO categoryDetail (categoryId, locale, name) VALUES ('CATS', 'en', 'Cats')
GO
INSERT INTO categoryDetail (categoryId, locale, name) VALUES ('DOGS', 'en', 'Dogs')
GO
INSERT INTO categoryDetail (categoryId, locale, name) VALUES ('FISH', 'en', 'Fish')
GO
INSERT INTO categoryDetail (categoryId, locale, name) VALUES ('REPTILES', 'en', 'Reptiles')
GO
INSERT INTO categoryDetail (categoryId, locale, name) VALUES ('BIRDS', 'pt', 'Pássaros')
GO
INSERT INTO categoryDetail (categoryId, locale, name) VALUES ('CATS', 'pt', 'Gatos')
GO
INSERT INTO categoryDetail (categoryId, locale, name) VALUES ('DOGS', 'pt', 'Cães')
GO
INSERT INTO categoryDetail (categoryId, locale, name) VALUES ('FISH', 'pt', 'Peixes')
GO
INSERT INTO categoryDetail (categoryId, locale, name) VALUES ('REPTILES', 'pt', 'Répteis')
GO

 


CREATE TABLE item (itemId varchar(10), productId varchar(10) NOT NULL, unitCost numeric(10, 2) NOT NULL, supplierId int NOT NULL, quantity int NOT NULL, PRIMARY KEY(itemId) )
GO

INSERT INTO item (itemId, productId, unitCost, supplierId, quantity) VALUES ('EST-1', 'FI-SW-01', 16.5, 1, 10000)
GO
INSERT INTO item (itemId, productId, unitCost, supplierId, quantity) VALUES ('EST-10', 'K9-DL-01', 18.5, 1, 10000)
GO
INSERT INTO item (itemId, productId, unitCost, supplierId, quantity) VALUES ('EST-11', 'RP-SN-01', 18.5, 1, 10000)
GO
INSERT INTO item (itemId, productId, unitCost, supplierId, quantity) VALUES ('EST-12', 'RP-SN-01', 18.5, 1, 10000)
GO
INSERT INTO item (itemId, productId, unitCost, supplierId, quantity) VALUES ('EST-13', 'RP-LI-02', 18.5, 1, 10000)
GO
INSERT INTO item (itemId, productId, unitCost, supplierId, quantity) VALUES ('EST-14', 'FL-DSH-01', 58.5, 1, 10000)
GO
INSERT INTO item (itemId, productId, unitCost, supplierId, quantity) VALUES ('EST-15', 'FL-DSH-01', 23.5, 1, 10000)
GO
INSERT INTO item (itemId, productId, unitCost, supplierId, quantity) VALUES ('EST-16', 'FL-DLH-02', 93.5, 1, 10000)
GO
INSERT INTO item (itemId, productId, unitCost, supplierId, quantity) VALUES ('EST-17', 'FL-DLH-02', 93.5, 1, 10000)
GO
INSERT INTO item (itemId, productId, unitCost, supplierId, quantity) VALUES ('EST-18', 'AV-CB-01', 193.5, 1, 10000)
GO
INSERT INTO item (itemId, productId, unitCost, supplierId, quantity) VALUES ('EST-19', 'AV-SB-02', 15.5, 1, 10000)
GO
INSERT INTO item (itemId, productId, unitCost, supplierId, quantity) VALUES ('EST-2', 'FI-SW-01', 16.5, 1, 10000)
GO
INSERT INTO item (itemId, productId, unitCost, supplierId, quantity) VALUES ('EST-20', 'FI-FW-02', 5.5, 1, 10000)
GO
INSERT INTO item (itemId, productId, unitCost, supplierId, quantity) VALUES ('EST-21', 'FI-FW-02', 5.29, 1, 10000)
GO
INSERT INTO item (itemId, productId, unitCost, supplierId, quantity) VALUES ('EST-22', 'K9-RT-02', 135.5, 1, 10000)
GO
INSERT INTO item (itemId, productId, unitCost, supplierId, quantity) VALUES ('EST-23', 'K9-RT-02', 145.49, 1, 10000)
GO
INSERT INTO item (itemId, productId, unitCost, supplierId, quantity) VALUES ('EST-24', 'K9-RT-02', 255.5, 1, 10000)
GO
INSERT INTO item (itemId, productId, unitCost, supplierId, quantity) VALUES ('EST-25', 'K9-RT-02', 325.29, 1, 10000)
GO
INSERT INTO item (itemId, productId, unitCost, supplierId, quantity) VALUES ('EST-26', 'K9-CW-01', 125.5, 1, 10000)
GO
INSERT INTO item (itemId, productId, unitCost, supplierId, quantity) VALUES ('EST-27', 'K9-CW-01', 155.29, 1, 10000)
GO
INSERT INTO item (itemId, productId, unitCost, supplierId, quantity) VALUES ('EST-28', 'K9-RT-01', 155.29, 1, 10000)
GO
INSERT INTO item (itemId, productId, unitCost, supplierId, quantity) VALUES ('EST-3', 'FI-SW-02', 18.5, 1, 10000)
GO
INSERT INTO item (itemId, productId, unitCost, supplierId, quantity) VALUES ('EST-4', 'FI-FW-01', 18.5, 1, 10000)
GO
INSERT INTO item (itemId, productId, unitCost, supplierId, quantity) VALUES ('EST-5', 'FI-FW-01', 18.5, 1, 10000)
GO
INSERT INTO item (itemId, productId, unitCost, supplierId, quantity) VALUES ('EST-8', 'K9-PO-02', 18.5, 1, 10000)
GO
INSERT INTO item (itemId, productId, unitCost, supplierId, quantity) VALUES ('EST-9', 'K9-DL-01', 18.5, 1, 10000)
GO

 

CREATE TABLE itemDetail (itemId varchar(10), locale varchar(10) NOT NULL, attribute varchar(255) NOT NULL, PRIMARY KEY(itemId, locale) )
GO

INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-1', 'pt', 'Grande')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-1', 'en', 'Large')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-10', 'pt', 'Fêmea Adulta com Manchas')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-10', 'en', 'Spotted Adult Female')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-11', 'pt', 'Sem veneno')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-11', 'en', 'Venomless')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-12', 'en', 'Rattleless')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-12', 'pt', 'Sem guizo')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-13', 'pt', 'Adulto Verde')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-13', 'en', 'Green Adult')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-14', 'pt', 'Sem cauda')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-14', 'en', 'Tailless')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-15', 'pt', 'Com cauda')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-15', 'en', 'With tail')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-16', 'en', 'Adult Female')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-16', 'pt', 'Fêmea Adulta')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-17', 'en', 'Adult Male')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-17', 'pt', 'Macho Adulto')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-18', 'en', 'Adult Male')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-18', 'pt', 'Macho Adulto')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-19', 'en', 'Adult Male')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-19', 'pt', 'Macho Adulto')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-2', 'pt', 'Pequeno')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-2', 'en', 'Small')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-20', 'en', 'Adult Male')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-20', 'pt', 'Macho Adulto')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-21', 'en', 'Adult Female')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-21', 'pt', 'Fêmea Adulta')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-22', 'en', 'Adult Male')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-22', 'pt', 'Macho Adulto')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-23', 'en', 'Adult Female')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-23', 'pt', 'Fêmea Adulta')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-24', 'en', 'Adult Male')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-24', 'pt', 'Macho Adulto')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-25', 'en', 'Adult Female')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-25', 'pt', 'Fêmea Adulta')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-26', 'en', 'Adult Male')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-26', 'pt', 'Macho Adulto')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-27', 'en', 'Adult Female')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-27', 'pt', 'Fêmea Adulta')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-28', 'en', 'Adult Female')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-28', 'pt', 'Fêmea Adulta')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-3', 'pt', 'Sem dentes')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-3', 'en', 'Toothless')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-4', 'pt', 'Manchado')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-4', 'en', 'Spotted')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-5', 'pt', 'Sem Manchas')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-5', 'en', 'Spotless')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-8', 'pt', 'Cachorrito')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-8', 'en', 'Male Puppy')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-9', 'pt', 'Cachorro Adulto sem Manchas')
GO
INSERT INTO itemDetail (itemId, locale, attribute) VALUES ('EST-9', 'en', 'Spotless Male Puppy')
GO

 

CREATE TABLE lineItem (orderId bigint , lineNumber int, itemId varchar(10) NOT NULL, quantity int NOT NULL, PRIMARY KEY(orderId, lineNumber) )
GO


CREATE TABLE [order] (orderId bigint IDENTITY (1, 1) NOT NULL, userId varchar(80) NOT NULL, orderDate datetime NOT NULL, shipToFirstName varchar(80) NOT NULL, shipToLastName varchar(80) NOT NULL, shipToAddress1 varchar(80) NOT NULL, shipToAddress2 varchar(80) NOT NULL, shipToCity varchar(80) NOT NULL, shipToState varchar(80), shipToZip varchar(20) NOT NULL, shipToCountry varchar(80) NOT NULL, shiptoPhoneNumber varchar(80), billToFirstName varchar(80) NOT NULL, billToLastName varchar(80), billToAddress1 varchar(80), billToAddress2 varchar(80), billToCity varchar(80), billToState varchar(80), billToPostalCode varchar(20) NOT NULL, billToCountry varchar(80) NOT NULL, billToPhoneNumber varchar(80), totalPrice numeric(10, 2), cardType varchar(20) NOT NULL, cardNumber varchar(20) NOT NULL, cardExpireMonth char(2) NOT NULL, cardExpireYear char(4) NOT NULL, locale varchar(10) NOT NULL, PRIMARY KEY (orderId) )
GO


CREATE TABLE product (productId varchar(10), categoryId varchar(10) NOT NULL, image varchar(255), PRIMARY KEY(productId) )
GO

INSERT INTO product (productId, categoryId, image) VALUES ('AV-CB-01', 'BIRDS', 'bird4.gif')
GO
INSERT INTO product (productId, categoryId, image) VALUES ('AV-SB-02', 'BIRDS', 'bird2.gif')
GO
INSERT INTO product (productId, categoryId, image) VALUES ('FI-FW-01', 'FISH', 'fish3.gif')
GO
INSERT INTO product (productId, categoryId, image) VALUES ('FI-FW-02', 'FISH', 'fish2.gif')
GO
INSERT INTO product (productId, categoryId, image) VALUES ('FI-SW-01', 'FISH', 'fish1.gif')
GO
INSERT INTO product (productId, categoryId, image) VALUES ('FI-SW-02', 'FISH', 'fish4.gif')
GO
INSERT INTO product (productId, categoryId, image) VALUES ('FL-DLH-02', 'CATS', 'cat1.gif')
GO
INSERT INTO product (productId, categoryId, image) VALUES ('FL-DSH-01', 'CATS', 'cat3.gif')
GO
INSERT INTO product (productId, categoryId, image) VALUES ('K9-CW-01', 'DOGS', 'dog4.gif')
GO
INSERT INTO product (productId, categoryId, image) VALUES ('K9-DL-01', 'DOGS', 'dog6.gif')
GO
INSERT INTO product (productId, categoryId, image) VALUES ('K9-PO-02', 'DOGS', 'dog3.gif')
GO
INSERT INTO product (productId, categoryId, image) VALUES ('K9-RT-01', 'DOGS', 'dog1.gif')
GO
INSERT INTO product (productId, categoryId, image) VALUES ('K9-RT-02', 'DOGS', 'dog5.gif')
GO
INSERT INTO product (productId, categoryId, image) VALUES ('RP-LI-02', 'REPTILES', 'lizard1.gif')
GO
INSERT INTO product (productId, categoryId, image) VALUES ('RP-SN-01', 'REPTILES', 'snake1.gif')
GO

 


CREATE TABLE productDetail (productId varchar(10), locale varchar(10) NOT NULL, name varchar(80) NOT NULL, description varchar(255) NOT NULL, PRIMARY KEY(productId, locale) )
GO

INSERT INTO productDetail (productId, locale, name, description) VALUES ('AV-CB-01', 'en', 'Amazon Parrot', 'Great companion for up to 75 years')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('AV-CB-01', 'pt', 'Arara', 'Companhia Excelente durante 75 anos')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('AV-SB-02', 'en', 'Finch', 'Great stress reliever')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('AV-SB-02', 'pt', 'Canário', 'Alivia o stress')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('FI-FW-01', 'en', 'Koi', 'Fresh Water Fish from Japan')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('FI-FW-01', 'pt', 'Koi', 'Peixe de água doce do Japão')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('FI-FW-02', 'en', 'Golden Fish', 'Fresh Water Fish from China')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('FI-FW-02', 'pt', 'Peixe Dourado', 'Peixe de água doce da China')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('FI-SW-01', 'en', 'Angel Fish', 'Salt Water Fish from Australia')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('FI-SW-01', 'pt', 'Peixe Anjo', 'Peixe de água salgada da Australia')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('FI-SW-02', 'en', 'Tiger Shark', 'Salt Water Fish from Australia')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('FI-SW-02', 'pt', 'Tiger Shark', 'Peixe de água salgada da Australia')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('FL-DLH-02', 'en', 'Persian', 'Friendly house cat, doubles as a princess')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('FL-DLH-02', 'pt', 'Persa', 'Gato Doméstico, faz as vezes de uma princesa')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('FL-DSH-01', 'en', 'Manx', 'Great for reducing mouse populations')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('FL-DSH-01', 'pt', 'Gato Comum', 'Excelente para reduzir a população de ratos')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('K9-CW-01', 'en', 'Chihuahua', 'Great companion dog')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('K9-CW-01', 'pt', 'Chihuahua', 'Excelente cão de companhia')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('K9-DL-01', 'en', 'Dalmation', 'Great dog for a Fire Station')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('K9-DL-01', 'pt', 'Dalmata', 'Excelente cão para o Quartel de Bombeiros')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('K9-PO-02', 'en', 'Poodle', 'Cute dog from France')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('K9-PO-02', 'pt', 'Poodle', 'Cão engraçado oriundo de França')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('K9-RT-01', 'en', 'Golden Retriever', 'Great family dog')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('K9-RT-01', 'pt', 'Golden Retriever', 'Excelente cão de família')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('K9-RT-02', 'en', 'Labrador Retriever', 'Great hunting dog')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('K9-RT-02', 'pt', 'Labrador Retriever', 'Excelente cão de caça')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('RP-LI-02', 'en', 'Iguana', 'Friendly green friend')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('RP-LI-02', 'pt', 'Iguana', 'Um amigo verdinho')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('RP-SN-01', 'en', 'Rattlesnake', 'Doubles as a watch dog')
GO
INSERT INTO productDetail (productId, locale, name, description) VALUES ('RP-SN-01', 'pt', 'Cascavél', 'Faz as vezes de um cão de guarda')
GO

 

CREATE TABLE supplier (supplierId int, name varchar(80) NOT NULL, status char(2), address1 varchar(80), address2 varchar(80), city varchar(80), state varchar(80), zip char(5), phone varchar(80), PRIMARY KEY(supplierId) )
GO

INSERT INTO supplier (supplierId, name, status, address1, city, state, zip, phone) VALUES (1, 'XYZ Pets', 'AC', '600 Avon Way', 'Los Angeles', 'CA', '94024', '212-947-0797')
GO
INSERT INTO supplier (supplierId, name, status, address1, city, state, zip, phone) VALUES ('2', 'ABC Pets', 'AC', '700 Abalone Way', 'San Francisco', 'CA', '94024', '415-947-0797')
GO

 

CREATE VIEW itemInformation AS SELECT item.itemId, item.unitCost, item.productId, itemDetail.attribute, itemDetail.locale, productDetail.name, productDetail.description, item.quantity, product.image FROM item INNER JOIN itemDetail ON item.itemId = itemDetail.itemId INNER JOIN product ON item.productId= product.productId INNER JOIN productDetail ON product.productId = productDetail.productId WHERE (productDetail.locale = itemDetail.locale)
GO


CREATE VIEW productInformation AS SELECT product.categoryId, product.productId, product.image, productDetail.locale, productDetail.name, productDetail.description FROM product INNER JOIN productDetail ON product.productId = productDetail.productId
GO

 


CREATE INDEX categoryDetail_idx1 ON categoryDetail (locale)
GO
CREATE INDEX categoryDetail_idx2 ON categoryDetail (categoryId, locale)
GO

CREATE INDEX userAccount_idx1 ON userAccount (password)
GO
CREATE INDEX userAccount_idx2 ON userAccount (userId, password)
GO

CREATE INDEX item_idx1 ON item (productId)
GO
CREATE INDEX item_idx2 ON item (productId, itemId, unitCost)
GO


CREATE INDEX itemDetail_idx1 ON itemDetail (itemId)
GO
CREATE INDEX itemDetail_idx2 ON itemDetail (locale)
GO
CREATE INDEX itemDetail_idx3 ON itemDetail (attribute)
GO


CREATE INDEX order_idx1 ON [order] (userId)
GO
CREATE INDEX order_idx2 ON [order] (orderId, userId)
GO

CREATE INDEX lineItem_idx1 ON lineItem (orderId)
GO
CREATE INDEX lineItem_idx2 ON lineItem (itemId)
GO

CREATE INDEX product_idx1 ON product (categoryId)
GO

CREATE INDEX productDetail_idx1 ON productDetail (productId)
GO
CREATE INDEX productDetail_idx2 ON productDetail (name)
GO
CREATE INDEX productDetail_idx3 ON productDetail (description)
GO

 

ALTER TABLE categoryDetail ADD CONSTRAINT categoryDetail_category_fk FOREIGN KEY(categoryId) REFERENCES category (categoryId) ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
ALTER TABLE item ADD CONSTRAINT item_product_fk FOREIGN KEY(productId) REFERENCES product (productId) ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
ALTER TABLE item ADD CONSTRAINT item_supplier_fk FOREIGN KEY(supplierId) REFERENCES supplier (supplierId) ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
ALTER TABLE itemDetail ADD CONSTRAINT itemDetail_item_fk FOREIGN KEY(itemId) REFERENCES item (itemId) ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
ALTER TABLE lineItem ADD CONSTRAINT lineItem_order_fk FOREIGN KEY(orderId) REFERENCES [order] (orderId) ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
ALTER TABLE lineItem ADD CONSTRAINT lineItem_item_fk FOREIGN KEY(itemId) REFERENCES item (itemId) ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
ALTER TABLE product ADD CONSTRAINT product_category_fk FOREIGN KEY(categoryId) REFERENCES category (categoryId) ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
ALTER TABLE productDetail ADD CONSTRAINT productDetail_product_fk FOREIGN KEY(productId) REFERENCES product (productId) ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
ALTER TABLE userAccount ADD CONSTRAINT userAccount_bannerData_fk FOREIGN KEY(categoryId) REFERENCES bannerData (categoryId) ON DELETE NO ACTION ON UPDATE NO ACTION;
GO
ALTER TABLE [order] ADD CONSTRAINT order_userAccount_fk FOREIGN KEY(userId) REFERENCES userAccount (userId) ON DELETE NO ACTION ON UPDATE NO ACTION;
GO

 


-- ============================
-- OPTIMISTIC LOCKING TRIGGERS
-- ============================


IF EXISTS (SELECT name FROM sysobjects WHERE name = 't_olock_userAccount' AND type = 'TR')
   DROP TRIGGER t_olock_userAccount
GO

CREATE TRIGGER t_olock_userAccount ON [userAccount]
INSTEAD OF UPDATE
AS
SET NOCOUNT ON
IF EXISTS(
 SELECT *
 FROM
  [userAccount]
  INNER JOIN inserted
   ON
   [userAccount].[userId] = inserted.[userId]
   AND
   [userAccount].[recordVersion] <> inserted.[recordVersion]
 WHERE
  (inserted.[recordVersion] IS NOT NULL)
 )
 BEGIN
  RAISERROR (16934, 16, 1)
 END
ELSE
 BEGIN
  UPDATE
   [userAccount]
  SET
   [userId] = inserted.[userId],
   [password] = inserted.[password],
   [email] = inserted.[email],
   [firstName] = inserted.[firstName],
   [lastName] = inserted.[lastName],
   [address1] = inserted.[address1],
   [address2] = inserted.[address2],
   [city] = inserted.[city],
   [state] = inserted.[state],
   [zip] = inserted.[zip],
   [country] = inserted.[country],
   [phone] = inserted.[phone],
   [languagePreference] = inserted.[languagePreference],
   [categoryId] = inserted.[categoryId],
   [myListOptions] = inserted.[myListOptions],
   [bannerOptions] = inserted.[bannerOptions],
   [recordVersion] = NEWID()
  FROM
   [userAccount]
   INNER JOIN inserted
    ON
    [userAccount].[userId] = inserted.[userId]
 END
GO

----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------

 

COMMIT TRANSACTION
GO

/*

EXEC sp_changeobjectowner 'userAccount' ,  'dbo'

EXEC sp_changeobjectowner 'bannerData' ,  'dbo'

EXEC sp_changeobjectowner 'category' ,  'dbo'

EXEC sp_changeobjectowner 'categoryDetail' ,  'dbo'

EXEC sp_changeobjectowner 'item' ,  'dbo'

EXEC sp_changeobjectowner 'itemDetail' ,  'dbo'

EXEC sp_changeobjectowner 'lineItem' ,  'dbo'

EXEC sp_changeobjectowner '[order]' ,  'dbo'

EXEC sp_changeobjectowner 'product' ,  'dbo'

EXEC sp_changeobjectowner 'productDetail' ,  'dbo'

EXEC sp_changeobjectowner 'supplier' ,  'dbo'

EXEC sp_changeobjectowner 'itemInformation' ,  'dbo'

EXEC sp_changeobjectowner 'productInformation' ,  'dbo'

*/
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值