--- /dev/null
+\r
+CREATE DATABASE [GHTDB] ON (NAME = N'GHTDB_dat', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\GHTDB.mdf' , SIZE = 6, FILEGROWTH = 10%) LOG ON (NAME = N'GHTDB_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\GHTDB.ldf' , SIZE = 2, FILEGROWTH = 10%)\r
+ COLLATE SQL_Latin1_General_CP1_CI_AS\r
+GO\r
+\r
+exec sp_dboption N'GHTDB', N'autoclose', N'false'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB', N'bulkcopy', N'true'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB', N'trunc. log', N'true'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB', N'torn page detection', N'true'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB', N'read only', N'false'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB', N'dbo use', N'false'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB', N'single', N'false'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB', N'autoshrink', N'false'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB', N'ANSI null default', N'false'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB', N'recursive triggers', N'false'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB', N'ANSI nulls', N'false'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB', N'concat null yields null', N'false'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB', N'cursor close on commit', N'false'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB', N'default to local cursor', N'false'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB', N'quoted identifier', N'false'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB', N'ANSI warnings', N'false'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB', N'auto create statistics', N'true'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB', N'auto update statistics', N'true'\r
+GO\r
+\r
+if( ( (@@microsoftversion / power(2, 24) = 8) and (@@microsoftversion & 0xffff >= 724) ) or ( (@@microsoftversion / power(2, 24) = 7) and (@@microsoftversion & 0xffff >= 1082) ) )\r
+ exec sp_dboption N'GHTDB', N'db chaining', N'false'\r
+GO\r
+\r
+use [GHTDB]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Products_Categories]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)\r
+ALTER TABLE [dbo].[Products] DROP CONSTRAINT FK_Products_Categories\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_CustomerCustomerDemo]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)\r
+ALTER TABLE [dbo].[CustomerCustomerDemo] DROP CONSTRAINT FK_CustomerCustomerDemo\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_CustomerCustomerDemo_Customers]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)\r
+ALTER TABLE [dbo].[CustomerCustomerDemo] DROP CONSTRAINT FK_CustomerCustomerDemo_Customers\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Orders_Customers]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)\r
+ALTER TABLE [dbo].[Orders] DROP CONSTRAINT FK_Orders_Customers\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Employees_Employees]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)\r
+ALTER TABLE [dbo].[Employees] DROP CONSTRAINT FK_Employees_Employees\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_EmployeeTerritories_Employees]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)\r
+ALTER TABLE [dbo].[EmployeeTerritories] DROP CONSTRAINT FK_EmployeeTerritories_Employees\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Orders_Employees]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)\r
+ALTER TABLE [dbo].[Orders] DROP CONSTRAINT FK_Orders_Employees\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Order_Details_Orders]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)\r
+ALTER TABLE [dbo].[Order Details] DROP CONSTRAINT FK_Order_Details_Orders\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Order_Details_Products]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)\r
+ALTER TABLE [dbo].[Order Details] DROP CONSTRAINT FK_Order_Details_Products\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Territories_Region]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)\r
+ALTER TABLE [dbo].[Territories] DROP CONSTRAINT FK_Territories_Region\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Orders_Shippers]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)\r
+ALTER TABLE [dbo].[Orders] DROP CONSTRAINT FK_Orders_Shippers\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Products_Suppliers]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)\r
+ALTER TABLE [dbo].[Products] DROP CONSTRAINT FK_Products_Suppliers\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_EmployeeTerritories_Territories]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)\r
+ALTER TABLE [dbo].[EmployeeTerritories] DROP CONSTRAINT FK_EmployeeTerritories_Territories\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CustOrderHist]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)\r
+drop procedure [dbo].[CustOrderHist]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CustOrdersDetail]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)\r
+drop procedure [dbo].[CustOrdersDetail]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CustOrdersOrders]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)\r
+drop procedure [dbo].[CustOrdersOrders]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Employee Sales by Country]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)\r
+drop procedure [dbo].[Employee Sales by Country]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GH_CreateTable]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)\r
+drop procedure [dbo].[GH_CreateTable]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GH_MultiRecordSets]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)\r
+drop procedure [dbo].[GH_MultiRecordSets]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GH_INOUT1]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)\r
+drop procedure [dbo].[GH_INOUT1]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GH_REFCURSOR1]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)\r
+drop procedure [dbo].[GH_REFCURSOR1]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GH_REFCURSOR2]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)\r
+drop procedure [dbo].[GH_REFCURSOR2]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GH_REFCURSOR3]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)\r
+drop procedure [dbo].[GH_REFCURSOR3]\r
+GO\r
+\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Sales by Year]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)\r
+drop procedure [dbo].[Sales by Year]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SalesByCategory]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)\r
+drop procedure [dbo].[SalesByCategory]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Ten Most Expensive Products]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)\r
+drop procedure [dbo].[Ten Most Expensive Products]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Category Sales for 1997]') and OBJECTPROPERTY(id, N'IsView') = 1)\r
+drop view [dbo].[Category Sales for 1997]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Sales Totals by Amount]') and OBJECTPROPERTY(id, N'IsView') = 1)\r
+drop view [dbo].[Sales Totals by Amount]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Sales by Category]') and OBJECTPROPERTY(id, N'IsView') = 1)\r
+drop view [dbo].[Sales by Category]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Summary of Sales by Quarter]') and OBJECTPROPERTY(id, N'IsView') = 1)\r
+drop view [dbo].[Summary of Sales by Quarter]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Summary of Sales by Year]') and OBJECTPROPERTY(id, N'IsView') = 1)\r
+drop view [dbo].[Summary of Sales by Year]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Invoices]') and OBJECTPROPERTY(id, N'IsView') = 1)\r
+drop view [dbo].[Invoices]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Order Details Extended]') and OBJECTPROPERTY(id, N'IsView') = 1)\r
+drop view [dbo].[Order Details Extended]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Order Subtotals]') and OBJECTPROPERTY(id, N'IsView') = 1)\r
+drop view [dbo].[Order Subtotals]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Product Sales for 1997]') and OBJECTPROPERTY(id, N'IsView') = 1)\r
+drop view [dbo].[Product Sales for 1997]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Alphabetical list of products]') and OBJECTPROPERTY(id, N'IsView') = 1)\r
+drop view [dbo].[Alphabetical list of products]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Current Product List]') and OBJECTPROPERTY(id, N'IsView') = 1)\r
+drop view [dbo].[Current Product List]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Orders Qry]') and OBJECTPROPERTY(id, N'IsView') = 1)\r
+drop view [dbo].[Orders Qry]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Products Above Average Price]') and OBJECTPROPERTY(id, N'IsView') = 1)\r
+drop view [dbo].[Products Above Average Price]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Products by Category]') and OBJECTPROPERTY(id, N'IsView') = 1)\r
+drop view [dbo].[Products by Category]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Quarterly Orders]') and OBJECTPROPERTY(id, N'IsView') = 1)\r
+drop view [dbo].[Quarterly Orders]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Categories]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)\r
+drop table [dbo].[Categories]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CustomerCustomerDemo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)\r
+drop table [dbo].[CustomerCustomerDemo]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CustomerDemographics]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)\r
+drop table [dbo].[CustomerDemographics]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Customers]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)\r
+drop table [dbo].[Customers]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[EmployeeTerritories]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)\r
+drop table [dbo].[EmployeeTerritories]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Employees]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)\r
+drop table [dbo].[Employees]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GH_EMPTYTABLE]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)\r
+drop table [dbo].[GH_EMPTYTABLE]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Order Details]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)\r
+drop table [dbo].[Order Details]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Orders]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)\r
+drop table [dbo].[Orders]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Products]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)\r
+drop table [dbo].[Products]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Region]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)\r
+drop table [dbo].[Region]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Shippers]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)\r
+drop table [dbo].[Shippers]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Suppliers]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)\r
+drop table [dbo].[Suppliers]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Territories]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)\r
+drop table [dbo].[Territories]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Types_Simple]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)\r
+drop table [dbo].[Types_Simple]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Types_Extended]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)\r
+drop table [dbo].[Types_Extended]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Types_Specific]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)\r
+drop table [dbo].[Types_Specific]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GHSP_TYPES_SIMPLE_1]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)\r
+drop procedure [dbo].[GHSP_TYPES_SIMPLE_1]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GHSP_TYPES_SIMPLE_2]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)\r
+drop procedure [dbo].[GHSP_TYPES_SIMPLE_2]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GHSP_TYPES_SIMPLE_3]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)\r
+drop procedure [dbo].[GHSP_TYPES_SIMPLE_3]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GHSP_TYPES_SIMPLE_4]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)\r
+drop procedure [dbo].[GHSP_TYPES_SIMPLE_4]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GHSP_TYPES_SIMPLE_5]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)\r
+drop procedure [dbo].[GHSP_TYPES_SIMPLE_5]\r
+GO\r
+\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS OFF \r
+GO\r
+\r
+\r
+CREATE TABLE [dbo].[TYPES_SIMPLE] (\r
+-- ID\r
+ [ID] char(10) NULL,\r
+ [T_BIT] [bit] NULL ,\r
+-- integer\r
+ [T_TINYINT] [tinyint] NULL ,\r
+ [T_SMALLINT] [smallint] NULL ,\r
+ [T_INT] [int] NULL ,\r
+ [T_BIGINT] [bigint] NULL ,\r
+-- float\r
+ [T_DECIMAL] [decimal](18, 0) NULL ,\r
+ [T_NUMERIC] [numeric](18, 0) NULL ,\r
+ [T_FLOAT] [float] NULL ,\r
+ [T_REAL] [real] NULL ,\r
+-- text\r
+ [T_CHAR] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [T_NCHAR] [nchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [T_VARCHAR] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [T_NVARCHAR] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL\r
+) ON [PRIMARY]\r
+GO\r
+\r
+CREATE TABLE [dbo].[TYPES_EXTENDED] (\r
+-- ID\r
+ [ID] char(10) NULL,\r
+-- Text\r
+ [T_TEXT] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [T_NTEXT] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+-- Binary\r
+ [T_BINARY] [binary] (50) NULL ,\r
+ [T_VARBINARY] [varbinary] (50) NULL ,\r
+--Time\r
+ [T_DATETIME] [datetime] NULL ,\r
+ [T_SMALLDATETIME] [smalldatetime] NULL \r
+) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]\r
+\r
+CREATE TABLE [dbo].[TYPES_SPECIFIC] (\r
+-- ID\r
+ [ID] char(10) NULL,\r
+ [T_SMALLMONEY] [smallmoney] NULL ,\r
+ [T_MONEY] [money] NULL ,\r
+ [T_IMAGE] [image] NULL ,\r
+ [T_UNIQUEIDENTIFIER] [uniqueidentifier] NULL ,\r
+ [T_SQL_VARIANT] [sql_variant] NULL ,\r
+ [T_TIMESTAMP] [timestamp] NULL\r
+) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]\r
+GO\r
+\r
+CREATE TABLE [dbo].[Categories] (\r
+ [CategoryID] [int] IDENTITY (1, 1) NOT NULL ,\r
+ [CategoryName] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,\r
+ [Description] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [Picture] [image] NULL \r
+) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]\r
+GO\r
+\r
+CREATE TABLE [dbo].[CustomerCustomerDemo] (\r
+ [CustomerID] [nchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,\r
+ [CustomerTypeID] [nchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL \r
+) ON [PRIMARY]\r
+GO\r
+\r
+CREATE TABLE [dbo].[CustomerDemographics] (\r
+ [CustomerTypeID] [nchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,\r
+ [CustomerDesc] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NULL \r
+) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]\r
+GO\r
+\r
+CREATE TABLE [dbo].[Customers] (\r
+ [CustomerID] [nchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,\r
+ [CompanyName] [nvarchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,\r
+ [ContactName] [nvarchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [ContactTitle] [nvarchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [Address] [nvarchar] (60) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [City] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [Region] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [PostalCode] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [Country] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [Phone] [nvarchar] (24) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [Fax] [nvarchar] (24) COLLATE SQL_Latin1_General_CP1_CI_AS NULL \r
+) ON [PRIMARY]\r
+GO\r
+\r
+CREATE TABLE [dbo].[EmployeeTerritories] (\r
+ [EmployeeID] [int] NOT NULL ,\r
+ [TerritoryID] [nvarchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL \r
+) ON [PRIMARY]\r
+GO\r
+\r
+CREATE TABLE [dbo].[Employees] (\r
+ [EmployeeID] [int] NOT NULL ,\r
+ [LastName] [nvarchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,\r
+ [FirstName] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,\r
+ [Title] [nvarchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [TitleOfCourtesy] [nvarchar] (25) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [BirthDate] [datetime] NULL ,\r
+ [HireDate] [datetime] NULL ,\r
+ [Address] [nvarchar] (60) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [City] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [Region] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [PostalCode] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [Country] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [HomePhone] [nvarchar] (24) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [Extension] [nvarchar] (4) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [Photo] [image] NULL ,\r
+ [Notes] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [ReportsTo] [int] NULL ,\r
+ [PhotoPath] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL \r
+) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]\r
+GO\r
+\r
+CREATE TABLE [dbo].[GH_EMPTYTABLE] (\r
+ [Col1] [int] NULL ,\r
+ [Col2] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL \r
+) ON [PRIMARY]\r
+GO\r
+\r
+CREATE TABLE [dbo].[Order Details] (\r
+ [OrderID] [int] NOT NULL ,\r
+ [ProductID] [int] NOT NULL ,\r
+ [UnitPrice] [money] NOT NULL ,\r
+ [Quantity] [smallint] NOT NULL ,\r
+ [Discount] [real] NOT NULL \r
+) ON [PRIMARY]\r
+GO\r
+\r
+CREATE TABLE [dbo].[Orders] (\r
+ [OrderID] [int] IDENTITY (1, 1) NOT NULL ,\r
+ [CustomerID] [nchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [EmployeeID] [int] NULL ,\r
+ [OrderDate] [datetime] NULL ,\r
+ [RequiredDate] [datetime] NULL ,\r
+ [ShippedDate] [datetime] NULL ,\r
+ [ShipVia] [int] NULL ,\r
+ [Freight] [money] NULL ,\r
+ [ShipName] [nvarchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [ShipAddress] [nvarchar] (60) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [ShipCity] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [ShipRegion] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [ShipPostalCode] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [ShipCountry] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL \r
+) ON [PRIMARY]\r
+GO\r
+\r
+CREATE TABLE [dbo].[Products] (\r
+ [ProductID] [int] IDENTITY (1, 1) NOT NULL ,\r
+ [ProductName] [nvarchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,\r
+ [SupplierID] [int] NULL ,\r
+ [CategoryID] [int] NULL ,\r
+ [QuantityPerUnit] [nvarchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [UnitPrice] [money] NULL ,\r
+ [UnitsInStock] [smallint] NULL ,\r
+ [UnitsOnOrder] [smallint] NULL ,\r
+ [ReorderLevel] [smallint] NULL ,\r
+ [Discontinued] [bit] NOT NULL \r
+) ON [PRIMARY]\r
+GO\r
+\r
+CREATE TABLE [dbo].[Region] (\r
+ [RegionID] [int] NOT NULL ,\r
+ [RegionDescription] [nchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL \r
+) ON [PRIMARY]\r
+GO\r
+\r
+CREATE TABLE [dbo].[Shippers] (\r
+ [ShipperID] [int] IDENTITY (1, 1) NOT NULL ,\r
+ [CompanyName] [nvarchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,\r
+ [Phone] [nvarchar] (24) COLLATE SQL_Latin1_General_CP1_CI_AS NULL \r
+) ON [PRIMARY]\r
+GO\r
+\r
+CREATE TABLE [dbo].[Suppliers] (\r
+ [SupplierID] [int] IDENTITY (1, 1) NOT NULL ,\r
+ [CompanyName] [nvarchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,\r
+ [ContactName] [nvarchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [ContactTitle] [nvarchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [Address] [nvarchar] (60) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [City] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [Region] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [PostalCode] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [Country] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [Phone] [nvarchar] (24) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [Fax] [nvarchar] (24) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [HomePage] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NULL \r
+) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]\r
+GO\r
+\r
+CREATE TABLE [dbo].[Territories] (\r
+ [TerritoryID] [nvarchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,\r
+ [TerritoryDescription] [nchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,\r
+ [RegionID] [int] NOT NULL \r
+) ON [PRIMARY]\r
+GO\r
+\r
+ALTER TABLE [dbo].[Categories] WITH NOCHECK ADD \r
+ CONSTRAINT [PK_Categories] PRIMARY KEY CLUSTERED \r
+ (\r
+ [CategoryID]\r
+ ) ON [PRIMARY] \r
+GO\r
+\r
+ALTER TABLE [dbo].[Customers] WITH NOCHECK ADD \r
+ CONSTRAINT [PK_Customers] PRIMARY KEY CLUSTERED \r
+ (\r
+ [CustomerID]\r
+ ) ON [PRIMARY] \r
+GO\r
+\r
+ALTER TABLE [dbo].[Employees] WITH NOCHECK ADD \r
+ CONSTRAINT [PK_Employees] PRIMARY KEY CLUSTERED \r
+ (\r
+ [EmployeeID]\r
+ ) ON [PRIMARY] \r
+GO\r
+\r
+ALTER TABLE [dbo].[Order Details] WITH NOCHECK ADD \r
+ CONSTRAINT [PK_Order_Details] PRIMARY KEY CLUSTERED \r
+ (\r
+ [OrderID],\r
+ [ProductID]\r
+ ) ON [PRIMARY] \r
+GO\r
+\r
+ALTER TABLE [dbo].[Orders] WITH NOCHECK ADD \r
+ CONSTRAINT [PK_Orders] PRIMARY KEY CLUSTERED \r
+ (\r
+ [OrderID]\r
+ ) ON [PRIMARY] \r
+GO\r
+\r
+ALTER TABLE [dbo].[Products] WITH NOCHECK ADD \r
+ CONSTRAINT [PK_Products] PRIMARY KEY CLUSTERED \r
+ (\r
+ [ProductID]\r
+ ) ON [PRIMARY] \r
+GO\r
+\r
+ALTER TABLE [dbo].[Shippers] WITH NOCHECK ADD \r
+ CONSTRAINT [PK_Shippers] PRIMARY KEY CLUSTERED \r
+ (\r
+ [ShipperID]\r
+ ) ON [PRIMARY] \r
+GO\r
+\r
+ALTER TABLE [dbo].[Suppliers] WITH NOCHECK ADD \r
+ CONSTRAINT [PK_Suppliers] PRIMARY KEY CLUSTERED \r
+ (\r
+ [SupplierID]\r
+ ) ON [PRIMARY] \r
+GO\r
+\r
+ CREATE INDEX [CategoryName] ON [dbo].[Categories]([CategoryName]) ON [PRIMARY]\r
+GO\r
+\r
+ALTER TABLE [dbo].[CustomerCustomerDemo] ADD \r
+ CONSTRAINT [PK_CustomerCustomerDemo] PRIMARY KEY NONCLUSTERED \r
+ (\r
+ [CustomerID],\r
+ [CustomerTypeID]\r
+ ) ON [PRIMARY] \r
+GO\r
+\r
+ALTER TABLE [dbo].[CustomerDemographics] ADD \r
+ CONSTRAINT [PK_CustomerDemographics] PRIMARY KEY NONCLUSTERED \r
+ (\r
+ [CustomerTypeID]\r
+ ) ON [PRIMARY] \r
+GO\r
+\r
+ CREATE INDEX [City] ON [dbo].[Customers]([City]) ON [PRIMARY]\r
+GO\r
+\r
+ CREATE INDEX [CompanyName] ON [dbo].[Customers]([CompanyName]) ON [PRIMARY]\r
+GO\r
+\r
+ CREATE INDEX [PostalCode] ON [dbo].[Customers]([PostalCode]) ON [PRIMARY]\r
+GO\r
+\r
+ CREATE INDEX [Region] ON [dbo].[Customers]([Region]) ON [PRIMARY]\r
+GO\r
+\r
+ALTER TABLE [dbo].[EmployeeTerritories] ADD \r
+ CONSTRAINT [PK_EmployeeTerritories] PRIMARY KEY NONCLUSTERED \r
+ (\r
+ [EmployeeID],\r
+ [TerritoryID]\r
+ ) ON [PRIMARY] \r
+GO\r
+\r
+ALTER TABLE [dbo].[Employees] ADD \r
+ CONSTRAINT [CK_Birthdate] CHECK ([BirthDate] < getdate())\r
+GO\r
+\r
+ CREATE INDEX [LastName] ON [dbo].[Employees]([LastName]) ON [PRIMARY]\r
+GO\r
+\r
+ CREATE INDEX [PostalCode] ON [dbo].[Employees]([PostalCode]) ON [PRIMARY]\r
+GO\r
+\r
+ALTER TABLE [dbo].[Order Details] ADD \r
+ CONSTRAINT [DF_Order_Details_UnitPrice] DEFAULT (0) FOR [UnitPrice],\r
+ CONSTRAINT [DF_Order_Details_Quantity] DEFAULT (1) FOR [Quantity],\r
+ CONSTRAINT [DF_Order_Details_Discount] DEFAULT (0) FOR [Discount],\r
+ CONSTRAINT [CK_Discount] CHECK ([Discount] >= 0 and [Discount] <= 1),\r
+ CONSTRAINT [CK_Quantity] CHECK ([Quantity] > 0),\r
+ CONSTRAINT [CK_UnitPrice] CHECK ([UnitPrice] >= 0)\r
+GO\r
+\r
+ CREATE INDEX [OrderID] ON [dbo].[Order Details]([OrderID]) ON [PRIMARY]\r
+GO\r
+\r
+ CREATE INDEX [OrdersOrder_Details] ON [dbo].[Order Details]([OrderID]) ON [PRIMARY]\r
+GO\r
+\r
+ CREATE INDEX [ProductID] ON [dbo].[Order Details]([ProductID]) ON [PRIMARY]\r
+GO\r
+\r
+ CREATE INDEX [ProductsOrder_Details] ON [dbo].[Order Details]([ProductID]) ON [PRIMARY]\r
+GO\r
+\r
+ALTER TABLE [dbo].[Orders] ADD \r
+ CONSTRAINT [DF_Orders_Freight] DEFAULT (0) FOR [Freight]\r
+GO\r
+\r
+ CREATE INDEX [CustomerID] ON [dbo].[Orders]([CustomerID]) ON [PRIMARY]\r
+GO\r
+\r
+ CREATE INDEX [CustomersOrders] ON [dbo].[Orders]([CustomerID]) ON [PRIMARY]\r
+GO\r
+\r
+ CREATE INDEX [EmployeeID] ON [dbo].[Orders]([EmployeeID]) ON [PRIMARY]\r
+GO\r
+\r
+ CREATE INDEX [EmployeesOrders] ON [dbo].[Orders]([EmployeeID]) ON [PRIMARY]\r
+GO\r
+\r
+ CREATE INDEX [OrderDate] ON [dbo].[Orders]([OrderDate]) ON [PRIMARY]\r
+GO\r
+\r
+ CREATE INDEX [ShippedDate] ON [dbo].[Orders]([ShippedDate]) ON [PRIMARY]\r
+GO\r
+\r
+ CREATE INDEX [ShippersOrders] ON [dbo].[Orders]([ShipVia]) ON [PRIMARY]\r
+GO\r
+\r
+ CREATE INDEX [ShipPostalCode] ON [dbo].[Orders]([ShipPostalCode]) ON [PRIMARY]\r
+GO\r
+\r
+ALTER TABLE [dbo].[Products] ADD \r
+ CONSTRAINT [DF_Products_UnitPrice] DEFAULT (0) FOR [UnitPrice],\r
+ CONSTRAINT [DF_Products_UnitsInStock] DEFAULT (0) FOR [UnitsInStock],\r
+ CONSTRAINT [DF_Products_UnitsOnOrder] DEFAULT (0) FOR [UnitsOnOrder],\r
+ CONSTRAINT [DF_Products_ReorderLevel] DEFAULT (0) FOR [ReorderLevel],\r
+ CONSTRAINT [DF_Products_Discontinued] DEFAULT (0) FOR [Discontinued],\r
+ CONSTRAINT [CK_Products_UnitPrice] CHECK ([UnitPrice] >= 0),\r
+ CONSTRAINT [CK_ReorderLevel] CHECK ([ReorderLevel] >= 0),\r
+ CONSTRAINT [CK_UnitsInStock] CHECK ([UnitsInStock] >= 0),\r
+ CONSTRAINT [CK_UnitsOnOrder] CHECK ([UnitsOnOrder] >= 0)\r
+GO\r
+\r
+ CREATE INDEX [CategoriesProducts] ON [dbo].[Products]([CategoryID]) ON [PRIMARY]\r
+GO\r
+\r
+ CREATE INDEX [CategoryID] ON [dbo].[Products]([CategoryID]) ON [PRIMARY]\r
+GO\r
+\r
+ CREATE INDEX [ProductName] ON [dbo].[Products]([ProductName]) ON [PRIMARY]\r
+GO\r
+\r
+ CREATE INDEX [SupplierID] ON [dbo].[Products]([SupplierID]) ON [PRIMARY]\r
+GO\r
+\r
+ CREATE INDEX [SuppliersProducts] ON [dbo].[Products]([SupplierID]) ON [PRIMARY]\r
+GO\r
+\r
+ALTER TABLE [dbo].[Region] ADD \r
+ CONSTRAINT [PK_Region] PRIMARY KEY NONCLUSTERED \r
+ (\r
+ [RegionID]\r
+ ) ON [PRIMARY] \r
+GO\r
+\r
+ CREATE INDEX [CompanyName] ON [dbo].[Suppliers]([CompanyName]) ON [PRIMARY]\r
+GO\r
+\r
+ CREATE INDEX [PostalCode] ON [dbo].[Suppliers]([PostalCode]) ON [PRIMARY]\r
+GO\r
+\r
+ALTER TABLE [dbo].[Territories] ADD \r
+ CONSTRAINT [PK_Territories] PRIMARY KEY NONCLUSTERED \r
+ (\r
+ [TerritoryID]\r
+ ) ON [PRIMARY] \r
+GO\r
+\r
+ALTER TABLE [dbo].[CustomerCustomerDemo] ADD \r
+ CONSTRAINT [FK_CustomerCustomerDemo] FOREIGN KEY \r
+ (\r
+ [CustomerTypeID]\r
+ ) REFERENCES [dbo].[CustomerDemographics] (\r
+ [CustomerTypeID]\r
+ ),\r
+ CONSTRAINT [FK_CustomerCustomerDemo_Customers] FOREIGN KEY \r
+ (\r
+ [CustomerID]\r
+ ) REFERENCES [dbo].[Customers] (\r
+ [CustomerID]\r
+ )\r
+GO\r
+\r
+ALTER TABLE [dbo].[EmployeeTerritories] ADD \r
+ CONSTRAINT [FK_EmployeeTerritories_Employees] FOREIGN KEY \r
+ (\r
+ [EmployeeID]\r
+ ) REFERENCES [dbo].[Employees] (\r
+ [EmployeeID]\r
+ ),\r
+ CONSTRAINT [FK_EmployeeTerritories_Territories] FOREIGN KEY \r
+ (\r
+ [TerritoryID]\r
+ ) REFERENCES [dbo].[Territories] (\r
+ [TerritoryID]\r
+ )\r
+GO\r
+\r
+ALTER TABLE [dbo].[Employees] ADD \r
+ CONSTRAINT [FK_Employees_Employees] FOREIGN KEY \r
+ (\r
+ [ReportsTo]\r
+ ) REFERENCES [dbo].[Employees] (\r
+ [EmployeeID]\r
+ )\r
+GO\r
+\r
+ALTER TABLE [dbo].[Order Details] ADD \r
+ CONSTRAINT [FK_Order_Details_Orders] FOREIGN KEY \r
+ (\r
+ [OrderID]\r
+ ) REFERENCES [dbo].[Orders] (\r
+ [OrderID]\r
+ ),\r
+ CONSTRAINT [FK_Order_Details_Products] FOREIGN KEY \r
+ (\r
+ [ProductID]\r
+ ) REFERENCES [dbo].[Products] (\r
+ [ProductID]\r
+ )\r
+GO\r
+\r
+ALTER TABLE [dbo].[Orders] ADD \r
+ CONSTRAINT [FK_Orders_Customers] FOREIGN KEY \r
+ (\r
+ [CustomerID]\r
+ ) REFERENCES [dbo].[Customers] (\r
+ [CustomerID]\r
+ ),\r
+ CONSTRAINT [FK_Orders_Employees] FOREIGN KEY \r
+ (\r
+ [EmployeeID]\r
+ ) REFERENCES [dbo].[Employees] (\r
+ [EmployeeID]\r
+ ),\r
+ CONSTRAINT [FK_Orders_Shippers] FOREIGN KEY \r
+ (\r
+ [ShipVia]\r
+ ) REFERENCES [dbo].[Shippers] (\r
+ [ShipperID]\r
+ )\r
+GO\r
+\r
+ALTER TABLE [dbo].[Products] ADD \r
+ CONSTRAINT [FK_Products_Categories] FOREIGN KEY \r
+ (\r
+ [CategoryID]\r
+ ) REFERENCES [dbo].[Categories] (\r
+ [CategoryID]\r
+ ),\r
+ CONSTRAINT [FK_Products_Suppliers] FOREIGN KEY \r
+ (\r
+ [SupplierID]\r
+ ) REFERENCES [dbo].[Suppliers] (\r
+ [SupplierID]\r
+ )\r
+GO\r
+\r
+ALTER TABLE [dbo].[Territories] ADD \r
+ CONSTRAINT [FK_Territories_Region] FOREIGN KEY \r
+ (\r
+ [RegionID]\r
+ ) REFERENCES [dbo].[Region] (\r
+ [RegionID]\r
+ )\r
+GO\r
+\r
+SET QUOTED_IDENTIFIER ON \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+create view "Current Product List" AS\r
+SELECT Product_List.ProductID, Product_List.ProductName\r
+FROM Products AS Product_List\r
+WHERE (((Product_List.Discontinued)=0))\r
+--ORDER BY Product_List.ProductName\r
+\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+SET QUOTED_IDENTIFIER ON \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+create view "Orders Qry" AS\r
+SELECT Orders.OrderID, Orders.CustomerID, Orders.EmployeeID, Orders.OrderDate, Orders.RequiredDate, \r
+ Orders.ShippedDate, Orders.ShipVia, Orders.Freight, Orders.ShipName, Orders.ShipAddress, Orders.ShipCity, \r
+ Orders.ShipRegion, Orders.ShipPostalCode, Orders.ShipCountry, \r
+ Customers.CompanyName, Customers.Address, Customers.City, Customers.Region, Customers.PostalCode, Customers.Country\r
+FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID\r
+\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+SET QUOTED_IDENTIFIER ON \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+create view "Products Above Average Price" AS\r
+SELECT Products.ProductName, Products.UnitPrice\r
+FROM Products\r
+WHERE Products.UnitPrice>(SELECT AVG(UnitPrice) From Products)\r
+--ORDER BY Products.UnitPrice DESC\r
+\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+SET QUOTED_IDENTIFIER ON \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+create view "Products by Category" AS\r
+SELECT Categories.CategoryName, Products.ProductName, Products.QuantityPerUnit, Products.UnitsInStock, Products.Discontinued\r
+FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID\r
+WHERE Products.Discontinued <> 1\r
+--ORDER BY Categories.CategoryName, Products.ProductName\r
+\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+SET QUOTED_IDENTIFIER ON \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+create view "Quarterly Orders" AS\r
+SELECT DISTINCT Customers.CustomerID, Customers.CompanyName, Customers.City, Customers.Country\r
+FROM Customers RIGHT JOIN Orders ON Customers.CustomerID = Orders.CustomerID\r
+WHERE Orders.OrderDate BETWEEN '19970101' And '19971231'\r
+\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+SET QUOTED_IDENTIFIER ON \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+create view Invoices AS\r
+SELECT Orders.ShipName, Orders.ShipAddress, Orders.ShipCity, Orders.ShipRegion, Orders.ShipPostalCode, \r
+ Orders.ShipCountry, Orders.CustomerID, Customers.CompanyName AS CustomerName, Customers.Address, Customers.City, \r
+ Customers.Region, Customers.PostalCode, Customers.Country, \r
+ (FirstName + ' ' + LastName) AS Salesperson, \r
+ Orders.OrderID, Orders.OrderDate, Orders.RequiredDate, Orders.ShippedDate, Shippers.CompanyName As ShipperName, \r
+ "Order Details".ProductID, Products.ProductName, "Order Details".UnitPrice, "Order Details".Quantity, \r
+ "Order Details".Discount, \r
+ (CONVERT(money,("Order Details".UnitPrice*Quantity*(1-Discount)/100))*100) AS ExtendedPrice, Orders.Freight\r
+FROM Shippers INNER JOIN \r
+ (Products INNER JOIN \r
+ (\r
+ (Employees INNER JOIN \r
+ (Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID) \r
+ ON Employees.EmployeeID = Orders.EmployeeID) \r
+ INNER JOIN "Order Details" ON Orders.OrderID = "Order Details".OrderID) \r
+ ON Products.ProductID = "Order Details".ProductID) \r
+ ON Shippers.ShipperID = Orders.ShipVia\r
+\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+SET QUOTED_IDENTIFIER ON \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+create view "Order Details Extended" AS\r
+SELECT "Order Details".OrderID, "Order Details".ProductID, Products.ProductName, \r
+ "Order Details".UnitPrice, "Order Details".Quantity, "Order Details".Discount, \r
+ (CONVERT(money,("Order Details".UnitPrice*Quantity*(1-Discount)/100))*100) AS ExtendedPrice\r
+FROM Products INNER JOIN "Order Details" ON Products.ProductID = "Order Details".ProductID\r
+--ORDER BY "Order Details".OrderID\r
+\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+SET QUOTED_IDENTIFIER ON \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+create view "Order Subtotals" AS\r
+SELECT "Order Details".OrderID, Sum(CONVERT(money,("Order Details".UnitPrice*Quantity*(1-Discount)/100))*100) AS Subtotal\r
+FROM "Order Details"\r
+GROUP BY "Order Details".OrderID\r
+\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+SET QUOTED_IDENTIFIER ON \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+create view "Product Sales for 1997" AS\r
+SELECT Categories.CategoryName, Products.ProductName, \r
+Sum(CONVERT(money,("Order Details".UnitPrice*Quantity*(1-Discount)/100))*100) AS ProductSales\r
+FROM (Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID) \r
+ INNER JOIN (Orders \r
+ INNER JOIN "Order Details" ON Orders.OrderID = "Order Details".OrderID) \r
+ ON Products.ProductID = "Order Details".ProductID\r
+WHERE (((Orders.ShippedDate) Between '19970101' And '19971231'))\r
+GROUP BY Categories.CategoryName, Products.ProductName\r
+\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+SET QUOTED_IDENTIFIER ON \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+create view "Category Sales for 1997" AS\r
+SELECT "Product Sales for 1997".CategoryName, Sum("Product Sales for 1997".ProductSales) AS CategorySales\r
+FROM "Product Sales for 1997"\r
+GROUP BY "Product Sales for 1997".CategoryName\r
+\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+SET QUOTED_IDENTIFIER ON \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+create view "Sales Totals by Amount" AS\r
+SELECT "Order Subtotals".Subtotal AS SaleAmount, Orders.OrderID, Customers.CompanyName, Orders.ShippedDate\r
+FROM Customers INNER JOIN \r
+ (Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID) \r
+ ON Customers.CustomerID = Orders.CustomerID\r
+WHERE ("Order Subtotals".Subtotal >2500) AND (Orders.ShippedDate BETWEEN '19970101' And '19971231')\r
+\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+SET QUOTED_IDENTIFIER ON \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+create view "Sales by Category" AS\r
+SELECT Categories.CategoryID, Categories.CategoryName, Products.ProductName, \r
+ Sum("Order Details Extended".ExtendedPrice) AS ProductSales\r
+FROM Categories INNER JOIN \r
+ (Products INNER JOIN \r
+ (Orders INNER JOIN "Order Details Extended" ON Orders.OrderID = "Order Details Extended".OrderID) \r
+ ON Products.ProductID = "Order Details Extended".ProductID) \r
+ ON Categories.CategoryID = Products.CategoryID\r
+WHERE Orders.OrderDate BETWEEN '19970101' And '19971231'\r
+GROUP BY Categories.CategoryID, Categories.CategoryName, Products.ProductName\r
+--ORDER BY Products.ProductName\r
+\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+SET QUOTED_IDENTIFIER ON \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+create view "Summary of Sales by Quarter" AS\r
+SELECT Orders.ShippedDate, Orders.OrderID, "Order Subtotals".Subtotal\r
+FROM Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID\r
+WHERE Orders.ShippedDate IS NOT NULL\r
+--ORDER BY Orders.ShippedDate\r
+\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+SET QUOTED_IDENTIFIER ON \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+create view "Summary of Sales by Year" AS\r
+SELECT Orders.ShippedDate, Orders.OrderID, "Order Subtotals".Subtotal\r
+FROM Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID\r
+WHERE Orders.ShippedDate IS NOT NULL\r
+--ORDER BY Orders.ShippedDate\r
+\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+SET QUOTED_IDENTIFIER ON \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+CREATE PROCEDURE CustOrderHist @CustomerID nchar(5)\r
+AS\r
+SELECT ProductName, Total=SUM(Quantity)\r
+FROM Products P, [Order Details] OD, Orders O, Customers C\r
+WHERE C.CustomerID = @CustomerID\r
+AND C.CustomerID = O.CustomerID AND O.OrderID = OD.OrderID AND OD.ProductID = P.ProductID\r
+GROUP BY ProductName\r
+\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+SET QUOTED_IDENTIFIER ON \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+CREATE PROCEDURE CustOrdersDetail @OrderID int\r
+AS\r
+SELECT ProductName,\r
+ UnitPrice=ROUND(Od.UnitPrice, 2),\r
+ Quantity,\r
+ Discount=CONVERT(int, Discount * 100), \r
+ ExtendedPrice=ROUND(CONVERT(money, Quantity * (1 - Discount) * Od.UnitPrice), 2)\r
+FROM Products P, [Order Details] Od\r
+WHERE Od.ProductID = P.ProductID and Od.OrderID = @OrderID\r
+\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+SET QUOTED_IDENTIFIER ON \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+CREATE PROCEDURE CustOrdersOrders @CustomerID nchar(5)\r
+AS\r
+SELECT OrderID, \r
+ OrderDate,\r
+ RequiredDate,\r
+ ShippedDate\r
+FROM Orders\r
+WHERE CustomerID = @CustomerID\r
+ORDER BY OrderID\r
+\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+SET QUOTED_IDENTIFIER ON \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+create procedure "Employee Sales by Country" \r
+@Beginning_Date DateTime, @Ending_Date DateTime AS\r
+SELECT Employees.Country, Employees.LastName, Employees.FirstName, Orders.ShippedDate, Orders.OrderID, "Order Subtotals".Subtotal AS SaleAmount\r
+FROM Employees INNER JOIN \r
+ (Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID) \r
+ ON Employees.EmployeeID = Orders.EmployeeID\r
+WHERE Orders.ShippedDate Between @Beginning_Date And @Ending_Date\r
+\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+SET QUOTED_IDENTIFIER ON \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+CREATE PROCEDURE GH_CREATETABLE\r
+AS\r
+Begin\r
+ --craete a temporary table\r
+ Create Table #temp_tbl (\r
+ Col1 int,\r
+ Col2 int\r
+ )\r
+ --insert values to the table\r
+ insert into #temp_tbl values (11,12)\r
+ insert into #temp_tbl values (21,22)\r
+ insert into #temp_tbl values (31,32)\r
+ --execute select on the created table\r
+ select col1 as Value1, col2 as Value2 from #temp_tbl;\r
+ --Update Return code\r
+ end\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+SET QUOTED_IDENTIFIER ON \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+CREATE PROCEDURE GH_MultiRecordSets \r
+as BEGIN\r
+ -- Declare cursor\r
+ SELECT EmployeeId, LastName FROM Employees where EmployeeId in (1,2) order by EmployeeId asc;\r
+ SELECT CustomerId, CompanyName,ContactName FROM Customers where CustomerId in ('MORGK','NORTS') order by customerid asc;\r
+ -- return empty result set\r
+ SELECT OrderId, ShipAddress,ShipVia, ShipCity FROM Orders where OrderId=-1 ;\r
+END\r
+GO\r
+\r
+CREATE procedure GH_INOUT1\r
+@INPARAM varchar(20) ,\r
+@OUTPARAM int output\r
+AS\r
+declare @L_INPARAM varchar(30) \r
+select L_INPARAM = @INPARAM\r
+select @OUTPARAM = 100\r
+GO\r
+\r
+\r
+CREATE procedure GH_REFCURSOR1\r
+AS\r
+SELECT EmployeeId, LastName FROM Employees\r
+WHERE EmployeeId=1;\r
+GO\r
+\r
+CREATE procedure GH_REFCURSOR2\r
+@IN_EMPLOYEEID int\r
+AS\r
+SELECT EmployeeId, LastName FROM Employees \r
+where EmployeeId = @IN_EMPLOYEEID\r
+GO\r
+\r
+\r
+CREATE procedure GH_REFCURSOR3\r
+@IN_LASTNAME varchar(20) AS\r
+SELECT EmployeeId, LastName FROM Employees \r
+where LastName = @IN_LASTNAME\r
+GO\r
+\r
+\r
+\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+SET QUOTED_IDENTIFIER ON \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+create procedure "Sales by Year" \r
+ @Beginning_Date DateTime, @Ending_Date DateTime AS\r
+SELECT Orders.ShippedDate, Orders.OrderID, "Order Subtotals".Subtotal, DATENAME(yy,ShippedDate) AS Year\r
+FROM Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID\r
+WHERE Orders.ShippedDate Between @Beginning_Date And @Ending_Date\r
+\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+SET QUOTED_IDENTIFIER ON \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+CREATE PROCEDURE SalesByCategory\r
+ @CategoryName nvarchar(15), @OrdYear nvarchar(4) = '1998'\r
+AS\r
+IF @OrdYear != '1996' AND @OrdYear != '1997' AND @OrdYear != '1998' \r
+BEGIN\r
+ SELECT @OrdYear = '1998'\r
+END\r
+SELECT ProductName,\r
+ TotalPurchase=ROUND(SUM(CONVERT(decimal(14,2), OD.Quantity * (1-OD.Discount) * OD.UnitPrice)), 0)\r
+FROM [Order Details] OD, Orders O, Products P, Categories C\r
+WHERE OD.OrderID = O.OrderID \r
+ AND OD.ProductID = P.ProductID \r
+ AND P.CategoryID = C.CategoryID\r
+ AND C.CategoryName = @CategoryName\r
+ AND SUBSTRING(CONVERT(nvarchar(22), O.OrderDate, 111), 1, 4) = @OrdYear\r
+GROUP BY ProductName\r
+ORDER BY ProductName\r
+\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+SET QUOTED_IDENTIFIER ON \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+create procedure "Ten Most Expensive Products" AS\r
+SET ROWCOUNT 10\r
+SELECT Products.ProductName AS TenMostExpensiveProducts, Products.UnitPrice\r
+FROM Products\r
+ORDER BY Products.UnitPrice DESC\r
+\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+CREATE PROCEDURE GHSP_TYPES_SIMPLE_1\r
+@T_BIT bit ,\r
+@T_TINYINT tinyint,\r
+@T_SMALLINT smallint ,\r
+@T_INT int,\r
+@T_BIGINT bigint,\r
+@T_DECIMAL decimal(18, 0),\r
+@T_NUMERIC numeric(18, 0) ,\r
+@T_FLOAT float ,\r
+@T_REAL real ,\r
+@T_CHAR char (10),\r
+@T_NCHAR nchar (10),\r
+@T_VARCHAR varchar (50) ,\r
+@T_NVARCHAR nvarchar (50)\r
+ AS\r
+SELECT @T_BIT as 'T_BIT', @T_TINYINT as 'T_TINYINT', @T_SMALLINT as 'T_SMALLINT' , @T_INT as 'T_INT', @T_BIGINT as 'T_BIGINT', @T_DECIMAL as 'T_DECIMAL',\r
+@T_NUMERIC as 'T_NUMERIC' , @T_FLOAT as 'T_FLOAT' , @T_REAL as 'T_REAL' , @T_CHAR as 'T_CHAR', @T_NCHAR as 'T_NCHAR', @T_VARCHAR as 'T_VARCHAR' , @T_NVARCHAR as 'T_NVARCHAR'\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS OFF \r
+GO\r
+\r
+CREATE PROCEDURE GHSP_TYPES_SIMPLE_2\r
+@T_BIT bit output,\r
+@T_TINYINT tinyint output,\r
+@T_SMALLINT smallint output,\r
+@T_INT int output,\r
+@T_BIGINT bigint output,\r
+@T_DECIMAL decimal(18, 0) output,\r
+@T_NUMERIC numeric(18, 0) output,\r
+@T_FLOAT float output,\r
+@T_REAL real output,\r
+@T_CHAR char (10) output,\r
+@T_NCHAR nchar (10) output,\r
+@T_VARCHAR varchar (50) output,\r
+@T_NVARCHAR nvarchar (50) output\r
+ AS\r
+IF @T_BIT=0\r
+ SELECT @T_BIT=1\r
+ELSE IF (@T_BIT=1)\r
+ SELECT @T_BIT=0\r
+SELECT @T_TINYINT = @T_TINYINT*2\r
+SELECT @T_SMALLINT = @T_SMALLINT*2 \r
+SELECT @T_INT = @T_INT*2\r
+SELECT @T_BIGINT = @T_BIGINT*2\r
+SELECT @T_DECIMAL = @T_DECIMAL*2\r
+SELECT @T_NUMERIC = @T_NUMERIC*2 \r
+SELECT @T_FLOAT = @T_FLOAT*2 \r
+SELECT @T_REAL = @T_REAL*2 \r
+SELECT @T_CHAR = UPPER(@T_CHAR)\r
+SELECT @T_NCHAR =UPPER(@T_NCHAR)\r
+SELECT @T_VARCHAR = UPPER(@T_VARCHAR)\r
+SELECT @T_NVARCHAR = UPPER(@T_NVARCHAR)\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS OFF \r
+GO\r
+\r
+CREATE PROCEDURE GHSP_TYPES_SIMPLE_3\r
+@ID char,\r
+@T_BIT bit output,\r
+@T_TINYINT tinyint output,\r
+@T_SMALLINT smallint output,\r
+@T_INT int output,\r
+@T_BIGINT bigint output,\r
+@T_DECIMAL decimal(18, 0) output,\r
+@T_NUMERIC numeric(18, 0) output,\r
+@T_FLOAT float output,\r
+@T_REAL real output,\r
+@T_CHAR char (10) output,\r
+@T_NCHAR nchar (10) output,\r
+@T_VARCHAR varchar (50) output,\r
+@T_NVARCHAR nvarchar (50) output\r
+AS\r
+SELECT @T_BIT = T_BIT, @T_TINYINT = T_TINYINT, @T_SMALLINT = T_SMALLINT , @T_INT = T_INT, @T_BIGINT = T_BIGINT, @T_DECIMAL = T_DECIMAL ,\r
+@T_NUMERIC = T_NUMERIC , @T_FLOAT = T_FLOAT , @T_REAL = T_REAL , @T_CHAR = T_CHAR, @T_NCHAR = T_NCHAR, \r
+@T_VARCHAR = T_VARCHAR, @T_NVARCHAR = T_NVARCHAR FROM TYPES_SIMPLE WHERE ID = @ID\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS OFF \r
+GO\r
+\r
+CREATE PROCEDURE GHSP_TYPES_SIMPLE_4\r
+@ID char\r
+AS\r
+/*Insert*/\r
+insert into TYPES_SIMPLE(ID,T_INT) values (@ID,50)\r
+SELECT * FROM TYPES_SIMPLE WHERE ID = @ID\r
+/*Update*/\r
+update TYPES_SIMPLE set T_INT=60 where Id = @ID\r
+SELECT * FROM TYPES_SIMPLE WHERE ID = @ID\r
+/*Delete*/\r
+delete from TYPES_SIMPLE WHERE ID = @ID\r
+SELECT * FROM TYPES_SIMPLE WHERE ID = @ID\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS OFF \r
+GO\r
+\r
+CREATE PROCEDURE GHSP_TYPES_SIMPLE_5\r
+AS\r
+DECLARE @T_BIT bit\r
+DECLARE @T_TINYINT tinyint\r
+DECLARE @T_SMALLINT smallint\r
+DECLARE @T_INT int\r
+DECLARE @T_BIGINT bigint\r
+DECLARE @T_DECIMAL decimal(18,0)\r
+DECLARE @T_NUMERIC numeric(18,0)\r
+DECLARE @T_FLOAT float\r
+DECLARE @T_REAL real\r
+DECLARE @T_CHAR char(10)\r
+DECLARE @T_NCHAR nchar(10)\r
+DECLARE @T_VARCHAR varchar(50)\r
+DECLARE @T_NVARCHAR nvarchar(50)\r
+\r
+SELECT @T_BIT = 1\r
+SELECT @T_TINYINT = 25\r
+SELECT @T_SMALLINT = 77\r
+SELECT @T_INT = 2525\r
+SELECT @T_BIGINT = 25251414\r
+SELECT @T_DECIMAL = 10\r
+SELECT @T_NUMERIC = 123123\r
+SELECT @T_FLOAT = 17.1414257\r
+SELECT @T_REAL = 0.71425\r
+SELECT @T_CHAR = 'abcdefghij'\r
+SELECT @T_NCHAR = N'klmnopqrst'\r
+SELECT @T_VARCHAR = 'qwertasdfg'\r
+SELECT @T_NVARCHAR = N'qwertasdfg'\r
+ \r
+SELECT @T_BIT as 'T_BIT', @T_TINYINT as 'T_TINYINT', @T_SMALLINT as 'T_SMALLINT' , @T_INT as 'T_INT', @T_BIGINT as 'T_BIGINT', @T_DECIMAL as 'T_DECIMAL', @T_NUMERIC as 'T_NUMERIC' , @T_FLOAT as 'T_FLOAT' , @T_REAL as 'T_REAL' , @T_CHAR as 'T_CHAR', @T_NCHAR as 'T_NCHAR', @T_VARCHAR as 'T_VARCHAR' , @T_NVARCHAR as 'T_NVARCHAR'\r
+\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+\r
+if not exists (select * from master.dbo.syslogins where loginname = N'mainsoft')\r
+BEGIN\r
+ declare @logindb nvarchar(132), @loginlang nvarchar(132) select @logindb = N'GHTDB', @loginlang = N'us_english'\r
+ if @logindb is null or not exists (select * from master.dbo.sysdatabases where name = @logindb)\r
+ select @logindb = N'master'\r
+ if @loginlang is null or (not exists (select * from master.dbo.syslanguages where name = @loginlang) and @loginlang <> N'us_english')\r
+ select @loginlang = @@language\r
+ exec sp_addlogin N'mainsoft', N'Sql123', @logindb, @loginlang\r
+END\r
+GO\r
+\r
+exec sp_addsrvrolemember N'mainsoft', sysadmin\r
+GO\r
+\r
+\r
+if not exists (select * from dbo.sysusers where name = N'mainsoft' and uid < 16382)\r
+ EXEC sp_grantdbaccess N'mainsoft', N'mainsoft'\r
+GO\r
+\r
+SET QUOTED_IDENTIFIER ON \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[mainsoft].[CategoriesNew]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)\r
+drop table [mainsoft].[CategoriesNew]\r
+GO\r
+\r
+CREATE TABLE [mainsoft].[CategoriesNew] (\r
+ [CategoryID] [int] IDENTITY (1, 1) NOT NULL ,\r
+ [CategoryName] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,\r
+ [Description] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [Picture] [image] NULL \r
+) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]\r
+GO\r
+\r
+CREATE TABLE [mainsoft].[Categories] (\r
+ [CategoryID] [nvarchar] (15) NOT NULL ,\r
+ [CategoryName] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,\r
+ [Description] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [Picture] [int] NULL \r
+) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]\r
+GO\r
+\r
+CREATE procedure [mainsoft].[GH_DUMMY]\r
+@EmployeeIdPrm char (10)\r
+AS\r
+SELECT * FROM Employees where EmployeeID > @EmployeeIdPrm\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r
+------------------------------------------------------------------------------------------------------------------\r
+------------------------------------------------------------------------------------------------------------------\r
+------------------------------------------------------------------------------------------------------------------\r
+------------------------------------------------------------------------------------------------------------------\r
+\r
+\r
+CREATE DATABASE [GHTDB_EX] ON (NAME = N'GHTDB_dat_EX', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL\data\GHTDB_EX.mdf' , SIZE = 6, FILEGROWTH = 10%) LOG ON (NAME = N'GHTDB_EX_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL\data\GHTDB_EX.ldf' , SIZE = 2, FILEGROWTH = 10%)\r
+ COLLATE SQL_Latin1_General_CP1_CI_AS\r
+GO\r
+\r
+exec sp_dboption N'GHTDB_EX', N'autoclose', N'false'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB_EX', N'bulkcopy', N'true'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB_EX', N'trunc. log', N'true'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB_EX', N'torn page detection', N'true'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB_EX', N'read only', N'false'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB_EX', N'dbo use', N'false'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB_EX', N'single', N'false'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB_EX', N'autoshrink', N'false'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB_EX', N'ANSI null default', N'false'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB_EX', N'recursive triggers', N'false'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB_EX', N'ANSI nulls', N'false'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB_EX', N'concat null yields null', N'false'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB_EX', N'cursor close on commit', N'false'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB_EX', N'default to local cursor', N'false'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB_EX', N'quoted identifier', N'false'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB_EX', N'ANSI warnings', N'false'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB_EX', N'auto create statistics', N'true'\r
+GO\r
+\r
+exec sp_dboption N'GHTDB_EX', N'auto update statistics', N'true'\r
+GO\r
+\r
+if( ( (@@microsoftversion / power(2, 24) = 8) and (@@microsoftversion & 0xffff >= 724) ) or ( (@@microsoftversion / power(2, 24) = 7) and (@@microsoftversion & 0xffff >= 1082) ) )\r
+ exec sp_dboption N'GHTDB_EX', N'db chaining', N'false'\r
+GO\r
+\r
+use [GHTDB_EX]\r
+GO\r
+\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GH_DUMMY]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)\r
+drop procedure [dbo].[GH_DUMMY]\r
+GO\r
+\r
+if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Customers]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)\r
+drop table [dbo].[Customers]\r
+GO\r
+\r
+CREATE TABLE [dbo].[Customers] (\r
+ [CustomerID] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,\r
+ [CompanyName] [nvarchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [ContactName] [nvarchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [ContactTitle] [nvarchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [Address] [nvarchar] (60) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [City] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [Region] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [PostalCode] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [Country] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [Phone] [nvarchar] (24) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,\r
+ [Fax] [nvarchar] (24) COLLATE SQL_Latin1_General_CP1_CI_AS NULL \r
+) ON [PRIMARY]\r
+GO\r
+\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS OFF \r
+GO\r
+\r
+print '------------------------------'\r
+print 'create another GH_DUMMY which select from a different table'\r
+print 'customers instead of employees'\r
+print '------------------------------'\r
+go\r
+\r
+CREATE procedure GH_DUMMY\r
+@CustomerIdPrm char (10)\r
+AS\r
+SELECT * FROM Customers where CustomerID = @CustomerIdPrm\r
+GO\r
+SET QUOTED_IDENTIFIER OFF \r
+GO\r
+SET ANSI_NULLS ON \r
+GO\r
+\r