/mcs/class/System.Data/Test/ProviderTests/System.Data.OleDb.jvm/GHTDB.MSSQL.sql

https://github.com/pruiz/mono · SQL · 1640 lines · 1328 code · 283 blank · 29 comment · 83 complexity · e605a53781028e0f77971c2b81e28161 MD5 · raw file

  1. IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'GHTDB')
  2. DROP DATABASE [GHTDB]
  3. GO
  4. CREATE DATABASE [GHTDB] ON (NAME = N'GHTDB_dat', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL\data\GHTDB.mdf' , SIZE = 6, FILEGROWTH = 10%) LOG ON (NAME = N'GHTDB_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL\data\GHTDB.ldf' , SIZE = 2, FILEGROWTH = 10%)
  5. COLLATE SQL_Latin1_General_CP1_CI_AS
  6. GO
  7. exec sp_dboption N'GHTDB', N'autoclose', N'false'
  8. GO
  9. exec sp_dboption N'GHTDB', N'bulkcopy', N'true'
  10. GO
  11. exec sp_dboption N'GHTDB', N'trunc. log', N'true'
  12. GO
  13. exec sp_dboption N'GHTDB', N'torn page detection', N'true'
  14. GO
  15. exec sp_dboption N'GHTDB', N'read only', N'false'
  16. GO
  17. exec sp_dboption N'GHTDB', N'dbo use', N'false'
  18. GO
  19. exec sp_dboption N'GHTDB', N'single', N'false'
  20. GO
  21. exec sp_dboption N'GHTDB', N'autoshrink', N'false'
  22. GO
  23. exec sp_dboption N'GHTDB', N'ANSI null default', N'false'
  24. GO
  25. exec sp_dboption N'GHTDB', N'recursive triggers', N'false'
  26. GO
  27. exec sp_dboption N'GHTDB', N'ANSI nulls', N'false'
  28. GO
  29. exec sp_dboption N'GHTDB', N'concat null yields null', N'false'
  30. GO
  31. exec sp_dboption N'GHTDB', N'cursor close on commit', N'false'
  32. GO
  33. exec sp_dboption N'GHTDB', N'default to local cursor', N'false'
  34. GO
  35. exec sp_dboption N'GHTDB', N'quoted identifier', N'false'
  36. GO
  37. exec sp_dboption N'GHTDB', N'ANSI warnings', N'false'
  38. GO
  39. exec sp_dboption N'GHTDB', N'auto create statistics', N'true'
  40. GO
  41. exec sp_dboption N'GHTDB', N'auto update statistics', N'true'
  42. GO
  43. if( ( (@@microsoftversion / power(2, 24) = 8) and (@@microsoftversion & 0xffff >= 724) ) or ( (@@microsoftversion / power(2, 24) = 7) and (@@microsoftversion & 0xffff >= 1082) ) )
  44. exec sp_dboption N'GHTDB', N'db chaining', N'false'
  45. GO
  46. use [GHTDB]
  47. GO
  48. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Products_Categories]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
  49. ALTER TABLE [dbo].[Products] DROP CONSTRAINT FK_Products_Categories
  50. GO
  51. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_CustomerCustomerDemo]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
  52. ALTER TABLE [dbo].[CustomerCustomerDemo] DROP CONSTRAINT FK_CustomerCustomerDemo
  53. GO
  54. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_CustomerCustomerDemo_Customers]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
  55. ALTER TABLE [dbo].[CustomerCustomerDemo] DROP CONSTRAINT FK_CustomerCustomerDemo_Customers
  56. GO
  57. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Orders_Customers]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
  58. ALTER TABLE [dbo].[Orders] DROP CONSTRAINT FK_Orders_Customers
  59. GO
  60. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Employees_Employees]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
  61. ALTER TABLE [dbo].[Employees] DROP CONSTRAINT FK_Employees_Employees
  62. GO
  63. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_EmployeeTerritories_Employees]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
  64. ALTER TABLE [dbo].[EmployeeTerritories] DROP CONSTRAINT FK_EmployeeTerritories_Employees
  65. GO
  66. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Orders_Employees]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
  67. ALTER TABLE [dbo].[Orders] DROP CONSTRAINT FK_Orders_Employees
  68. GO
  69. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Order_Details_Orders]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
  70. ALTER TABLE [dbo].[Order Details] DROP CONSTRAINT FK_Order_Details_Orders
  71. GO
  72. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Order_Details_Products]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
  73. ALTER TABLE [dbo].[Order Details] DROP CONSTRAINT FK_Order_Details_Products
  74. GO
  75. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Territories_Region]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
  76. ALTER TABLE [dbo].[Territories] DROP CONSTRAINT FK_Territories_Region
  77. GO
  78. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Orders_Shippers]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
  79. ALTER TABLE [dbo].[Orders] DROP CONSTRAINT FK_Orders_Shippers
  80. GO
  81. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Products_Suppliers]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
  82. ALTER TABLE [dbo].[Products] DROP CONSTRAINT FK_Products_Suppliers
  83. GO
  84. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_EmployeeTerritories_Territories]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
  85. ALTER TABLE [dbo].[EmployeeTerritories] DROP CONSTRAINT FK_EmployeeTerritories_Territories
  86. GO
  87. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CustOrderHist]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  88. drop procedure [dbo].[CustOrderHist]
  89. GO
  90. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CustOrdersDetail]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  91. drop procedure [dbo].[CustOrdersDetail]
  92. GO
  93. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CustOrdersOrders]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  94. drop procedure [dbo].[CustOrdersOrders]
  95. GO
  96. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Employee Sales by Country]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  97. drop procedure [dbo].[Employee Sales by Country]
  98. GO
  99. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GH_CreateTable]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  100. drop procedure [dbo].[GH_CreateTable]
  101. GO
  102. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GH_MultiRecordSets]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  103. drop procedure [dbo].[GH_MultiRecordSets]
  104. GO
  105. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GH_INOUT1]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  106. drop procedure [dbo].[GH_INOUT1]
  107. GO
  108. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GH_REFCURSOR1]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  109. drop procedure [dbo].[GH_REFCURSOR1]
  110. GO
  111. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GH_REFCURSOR2]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  112. drop procedure [dbo].[GH_REFCURSOR2]
  113. GO
  114. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GH_REFCURSOR3]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  115. drop procedure [dbo].[GH_REFCURSOR3]
  116. GO
  117. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Sales by Year]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  118. drop procedure [dbo].[Sales by Year]
  119. GO
  120. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SalesByCategory]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  121. drop procedure [dbo].[SalesByCategory]
  122. GO
  123. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Ten Most Expensive Products]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  124. drop procedure [dbo].[Ten Most Expensive Products]
  125. GO
  126. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Category Sales for 1997]') and OBJECTPROPERTY(id, N'IsView') = 1)
  127. drop view [dbo].[Category Sales for 1997]
  128. GO
  129. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Sales Totals by Amount]') and OBJECTPROPERTY(id, N'IsView') = 1)
  130. drop view [dbo].[Sales Totals by Amount]
  131. GO
  132. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Sales by Category]') and OBJECTPROPERTY(id, N'IsView') = 1)
  133. drop view [dbo].[Sales by Category]
  134. GO
  135. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Summary of Sales by Quarter]') and OBJECTPROPERTY(id, N'IsView') = 1)
  136. drop view [dbo].[Summary of Sales by Quarter]
  137. GO
  138. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Summary of Sales by Year]') and OBJECTPROPERTY(id, N'IsView') = 1)
  139. drop view [dbo].[Summary of Sales by Year]
  140. GO
  141. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Invoices]') and OBJECTPROPERTY(id, N'IsView') = 1)
  142. drop view [dbo].[Invoices]
  143. GO
  144. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Order Details Extended]') and OBJECTPROPERTY(id, N'IsView') = 1)
  145. drop view [dbo].[Order Details Extended]
  146. GO
  147. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Order Subtotals]') and OBJECTPROPERTY(id, N'IsView') = 1)
  148. drop view [dbo].[Order Subtotals]
  149. GO
  150. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Product Sales for 1997]') and OBJECTPROPERTY(id, N'IsView') = 1)
  151. drop view [dbo].[Product Sales for 1997]
  152. GO
  153. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Alphabetical list of products]') and OBJECTPROPERTY(id, N'IsView') = 1)
  154. drop view [dbo].[Alphabetical list of products]
  155. GO
  156. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Current Product List]') and OBJECTPROPERTY(id, N'IsView') = 1)
  157. drop view [dbo].[Current Product List]
  158. GO
  159. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Orders Qry]') and OBJECTPROPERTY(id, N'IsView') = 1)
  160. drop view [dbo].[Orders Qry]
  161. GO
  162. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Products Above Average Price]') and OBJECTPROPERTY(id, N'IsView') = 1)
  163. drop view [dbo].[Products Above Average Price]
  164. GO
  165. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Products by Category]') and OBJECTPROPERTY(id, N'IsView') = 1)
  166. drop view [dbo].[Products by Category]
  167. GO
  168. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Quarterly Orders]') and OBJECTPROPERTY(id, N'IsView') = 1)
  169. drop view [dbo].[Quarterly Orders]
  170. GO
  171. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Categories]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
  172. drop table [dbo].[Categories]
  173. GO
  174. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CustomerCustomerDemo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
  175. drop table [dbo].[CustomerCustomerDemo]
  176. GO
  177. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CustomerDemographics]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
  178. drop table [dbo].[CustomerDemographics]
  179. GO
  180. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Customers]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
  181. drop table [dbo].[Customers]
  182. GO
  183. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[EmployeeTerritories]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
  184. drop table [dbo].[EmployeeTerritories]
  185. GO
  186. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Employees]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
  187. drop table [dbo].[Employees]
  188. GO
  189. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GH_EMPTYTABLE]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
  190. drop table [dbo].[GH_EMPTYTABLE]
  191. GO
  192. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Order Details]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
  193. drop table [dbo].[Order Details]
  194. GO
  195. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Orders]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
  196. drop table [dbo].[Orders]
  197. GO
  198. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Products]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
  199. drop table [dbo].[Products]
  200. GO
  201. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Region]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
  202. drop table [dbo].[Region]
  203. GO
  204. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Shippers]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
  205. drop table [dbo].[Shippers]
  206. GO
  207. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Suppliers]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
  208. drop table [dbo].[Suppliers]
  209. GO
  210. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Territories]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
  211. drop table [dbo].[Territories]
  212. GO
  213. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Types_Simple]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
  214. drop table [dbo].[Types_Simple]
  215. GO
  216. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Types_Extended]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
  217. drop table [dbo].[Types_Extended]
  218. GO
  219. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Types_Specific]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
  220. drop table [dbo].[Types_Specific]
  221. GO
  222. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GHSP_TYPES_SIMPLE_1]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  223. drop procedure [dbo].[GHSP_TYPES_SIMPLE_1]
  224. GO
  225. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GHSP_TYPES_SIMPLE_2]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  226. drop procedure [dbo].[GHSP_TYPES_SIMPLE_2]
  227. GO
  228. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GHSP_TYPES_SIMPLE_3]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  229. drop procedure [dbo].[GHSP_TYPES_SIMPLE_3]
  230. GO
  231. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GHSP_TYPES_SIMPLE_4]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  232. drop procedure [dbo].[GHSP_TYPES_SIMPLE_4]
  233. GO
  234. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GHSP_TYPES_SIMPLE_5]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  235. drop procedure [dbo].[GHSP_TYPES_SIMPLE_5]
  236. GO
  237. SET QUOTED_IDENTIFIER OFF
  238. GO
  239. SET ANSI_NULLS OFF
  240. GO
  241. CREATE TABLE [dbo].[TYPES_SIMPLE] (
  242. -- ID
  243. [ID] char(10) NULL,
  244. [T_BIT] [bit] NULL ,
  245. -- integer
  246. [T_TINYINT] [tinyint] NULL ,
  247. [T_SMALLINT] [smallint] NULL ,
  248. [T_INT] [int] NULL ,
  249. [T_BIGINT] [bigint] NULL ,
  250. -- float
  251. [T_DECIMAL] [decimal](18, 0) NULL ,
  252. [T_NUMERIC] [numeric](18, 0) NULL ,
  253. [T_FLOAT] [float] NULL ,
  254. [T_REAL] [real] NULL ,
  255. -- text
  256. [T_CHAR] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  257. [T_NCHAR] [nchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  258. [T_VARCHAR] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  259. [T_NVARCHAR] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
  260. ) ON [PRIMARY]
  261. GO
  262. CREATE TABLE [dbo].[TYPES_EXTENDED] (
  263. -- ID
  264. [ID] char(10) NULL,
  265. -- Text
  266. [T_TEXT] [text] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  267. [T_NTEXT] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  268. -- Binary
  269. [T_BINARY] [binary] (50) NULL ,
  270. [T_VARBINARY] [varbinary] (50) NULL ,
  271. --Time
  272. [T_DATETIME] [datetime] NULL ,
  273. [T_SMALLDATETIME] [smalldatetime] NULL
  274. ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
  275. CREATE TABLE [dbo].[TYPES_SPECIFIC] (
  276. -- ID
  277. [ID] char(10) NULL,
  278. [T_SMALLMONEY] [smallmoney] NULL ,
  279. [T_MONEY] [money] NULL ,
  280. [T_IMAGE] [image] NULL ,
  281. [T_UNIQUEIDENTIFIER] [uniqueidentifier] NULL ,
  282. [T_SQL_VARIANT] [sql_variant] NULL ,
  283. [T_TIMESTAMP] [timestamp] NULL
  284. ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
  285. GO
  286. CREATE TABLE [dbo].[Categories] (
  287. [CategoryID] [int] IDENTITY (1, 1) NOT NULL ,
  288. [CategoryName] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
  289. [Description] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  290. [Picture] [image] NULL
  291. ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
  292. GO
  293. CREATE TABLE [dbo].[CustomerCustomerDemo] (
  294. [CustomerID] [nchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
  295. [CustomerTypeID] [nchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
  296. ) ON [PRIMARY]
  297. GO
  298. CREATE TABLE [dbo].[CustomerDemographics] (
  299. [CustomerTypeID] [nchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
  300. [CustomerDesc] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NULL
  301. ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
  302. GO
  303. CREATE TABLE [dbo].[Customers] (
  304. [CustomerID] [nchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
  305. [CompanyName] [nvarchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
  306. [ContactName] [nvarchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  307. [ContactTitle] [nvarchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  308. [Address] [nvarchar] (60) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  309. [City] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  310. [Region] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  311. [PostalCode] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  312. [Country] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  313. [Phone] [nvarchar] (24) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  314. [Fax] [nvarchar] (24) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
  315. ) ON [PRIMARY]
  316. GO
  317. CREATE TABLE [dbo].[EmployeeTerritories] (
  318. [EmployeeID] [int] NOT NULL ,
  319. [TerritoryID] [nvarchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
  320. ) ON [PRIMARY]
  321. GO
  322. CREATE TABLE [dbo].[Employees] (
  323. [EmployeeID] [int] NOT NULL ,
  324. [LastName] [nvarchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
  325. [FirstName] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
  326. [Title] [nvarchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  327. [TitleOfCourtesy] [nvarchar] (25) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  328. [BirthDate] [datetime] NULL ,
  329. [HireDate] [datetime] NULL ,
  330. [Address] [nvarchar] (60) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  331. [City] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  332. [Region] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  333. [PostalCode] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  334. [Country] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  335. [HomePhone] [nvarchar] (24) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  336. [Extension] [nvarchar] (4) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  337. [Photo] [image] NULL ,
  338. [Notes] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  339. [ReportsTo] [int] NULL ,
  340. [PhotoPath] [nvarchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
  341. ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
  342. GO
  343. CREATE TABLE [dbo].[GH_EMPTYTABLE] (
  344. [Col1] [int] NULL ,
  345. [Col2] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
  346. ) ON [PRIMARY]
  347. GO
  348. CREATE TABLE [dbo].[Order Details] (
  349. [OrderID] [int] NOT NULL ,
  350. [ProductID] [int] NOT NULL ,
  351. [UnitPrice] [money] NOT NULL ,
  352. [Quantity] [smallint] NOT NULL ,
  353. [Discount] [real] NOT NULL
  354. ) ON [PRIMARY]
  355. GO
  356. CREATE TABLE [dbo].[Orders] (
  357. [OrderID] [int] IDENTITY (1, 1) NOT NULL ,
  358. [CustomerID] [nchar] (5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  359. [EmployeeID] [int] NULL ,
  360. [OrderDate] [datetime] NULL ,
  361. [RequiredDate] [datetime] NULL ,
  362. [ShippedDate] [datetime] NULL ,
  363. [ShipVia] [int] NULL ,
  364. [Freight] [money] NULL ,
  365. [ShipName] [nvarchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  366. [ShipAddress] [nvarchar] (60) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  367. [ShipCity] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  368. [ShipRegion] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  369. [ShipPostalCode] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  370. [ShipCountry] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
  371. ) ON [PRIMARY]
  372. GO
  373. CREATE TABLE [dbo].[Products] (
  374. [ProductID] [int] IDENTITY (1, 1) NOT NULL ,
  375. [ProductName] [nvarchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
  376. [SupplierID] [int] NULL ,
  377. [CategoryID] [int] NULL ,
  378. [QuantityPerUnit] [nvarchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  379. [UnitPrice] [money] NULL ,
  380. [UnitsInStock] [smallint] NULL ,
  381. [UnitsOnOrder] [smallint] NULL ,
  382. [ReorderLevel] [smallint] NULL ,
  383. [Discontinued] [bit] NOT NULL
  384. ) ON [PRIMARY]
  385. GO
  386. CREATE TABLE [dbo].[Region] (
  387. [RegionID] [int] NOT NULL ,
  388. [RegionDescription] [nchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
  389. ) ON [PRIMARY]
  390. GO
  391. CREATE TABLE [dbo].[Shippers] (
  392. [ShipperID] [int] IDENTITY (1, 1) NOT NULL ,
  393. [CompanyName] [nvarchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
  394. [Phone] [nvarchar] (24) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
  395. ) ON [PRIMARY]
  396. GO
  397. CREATE TABLE [dbo].[Suppliers] (
  398. [SupplierID] [int] IDENTITY (1, 1) NOT NULL ,
  399. [CompanyName] [nvarchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
  400. [ContactName] [nvarchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  401. [ContactTitle] [nvarchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  402. [Address] [nvarchar] (60) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  403. [City] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  404. [Region] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  405. [PostalCode] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  406. [Country] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  407. [Phone] [nvarchar] (24) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  408. [Fax] [nvarchar] (24) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  409. [HomePage] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NULL
  410. ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
  411. GO
  412. CREATE TABLE [dbo].[Territories] (
  413. [TerritoryID] [nvarchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
  414. [TerritoryDescription] [nchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
  415. [RegionID] [int] NOT NULL
  416. ) ON [PRIMARY]
  417. GO
  418. ALTER TABLE [dbo].[Categories] WITH NOCHECK ADD
  419. CONSTRAINT [PK_Categories] PRIMARY KEY CLUSTERED
  420. (
  421. [CategoryID]
  422. ) ON [PRIMARY]
  423. GO
  424. ALTER TABLE [dbo].[Customers] WITH NOCHECK ADD
  425. CONSTRAINT [PK_Customers] PRIMARY KEY CLUSTERED
  426. (
  427. [CustomerID]
  428. ) ON [PRIMARY]
  429. GO
  430. ALTER TABLE [dbo].[Employees] WITH NOCHECK ADD
  431. CONSTRAINT [PK_Employees] PRIMARY KEY CLUSTERED
  432. (
  433. [EmployeeID]
  434. ) ON [PRIMARY]
  435. GO
  436. ALTER TABLE [dbo].[Order Details] WITH NOCHECK ADD
  437. CONSTRAINT [PK_Order_Details] PRIMARY KEY CLUSTERED
  438. (
  439. [OrderID],
  440. [ProductID]
  441. ) ON [PRIMARY]
  442. GO
  443. ALTER TABLE [dbo].[Orders] WITH NOCHECK ADD
  444. CONSTRAINT [PK_Orders] PRIMARY KEY CLUSTERED
  445. (
  446. [OrderID]
  447. ) ON [PRIMARY]
  448. GO
  449. ALTER TABLE [dbo].[Products] WITH NOCHECK ADD
  450. CONSTRAINT [PK_Products] PRIMARY KEY CLUSTERED
  451. (
  452. [ProductID]
  453. ) ON [PRIMARY]
  454. GO
  455. ALTER TABLE [dbo].[Shippers] WITH NOCHECK ADD
  456. CONSTRAINT [PK_Shippers] PRIMARY KEY CLUSTERED
  457. (
  458. [ShipperID]
  459. ) ON [PRIMARY]
  460. GO
  461. ALTER TABLE [dbo].[Suppliers] WITH NOCHECK ADD
  462. CONSTRAINT [PK_Suppliers] PRIMARY KEY CLUSTERED
  463. (
  464. [SupplierID]
  465. ) ON [PRIMARY]
  466. GO
  467. CREATE INDEX [CategoryName] ON [dbo].[Categories]([CategoryName]) ON [PRIMARY]
  468. GO
  469. ALTER TABLE [dbo].[CustomerCustomerDemo] ADD
  470. CONSTRAINT [PK_CustomerCustomerDemo] PRIMARY KEY NONCLUSTERED
  471. (
  472. [CustomerID],
  473. [CustomerTypeID]
  474. ) ON [PRIMARY]
  475. GO
  476. ALTER TABLE [dbo].[CustomerDemographics] ADD
  477. CONSTRAINT [PK_CustomerDemographics] PRIMARY KEY NONCLUSTERED
  478. (
  479. [CustomerTypeID]
  480. ) ON [PRIMARY]
  481. GO
  482. CREATE INDEX [City] ON [dbo].[Customers]([City]) ON [PRIMARY]
  483. GO
  484. CREATE INDEX [CompanyName] ON [dbo].[Customers]([CompanyName]) ON [PRIMARY]
  485. GO
  486. CREATE INDEX [PostalCode] ON [dbo].[Customers]([PostalCode]) ON [PRIMARY]
  487. GO
  488. CREATE INDEX [Region] ON [dbo].[Customers]([Region]) ON [PRIMARY]
  489. GO
  490. ALTER TABLE [dbo].[EmployeeTerritories] ADD
  491. CONSTRAINT [PK_EmployeeTerritories] PRIMARY KEY NONCLUSTERED
  492. (
  493. [EmployeeID],
  494. [TerritoryID]
  495. ) ON [PRIMARY]
  496. GO
  497. ALTER TABLE [dbo].[Employees] ADD
  498. CONSTRAINT [CK_Birthdate] CHECK ([BirthDate] < getdate())
  499. GO
  500. CREATE INDEX [LastName] ON [dbo].[Employees]([LastName]) ON [PRIMARY]
  501. GO
  502. CREATE INDEX [PostalCode] ON [dbo].[Employees]([PostalCode]) ON [PRIMARY]
  503. GO
  504. ALTER TABLE [dbo].[Order Details] ADD
  505. CONSTRAINT [DF_Order_Details_UnitPrice] DEFAULT (0) FOR [UnitPrice],
  506. CONSTRAINT [DF_Order_Details_Quantity] DEFAULT (1) FOR [Quantity],
  507. CONSTRAINT [DF_Order_Details_Discount] DEFAULT (0) FOR [Discount],
  508. CONSTRAINT [CK_Discount] CHECK ([Discount] >= 0 and [Discount] <= 1),
  509. CONSTRAINT [CK_Quantity] CHECK ([Quantity] > 0),
  510. CONSTRAINT [CK_UnitPrice] CHECK ([UnitPrice] >= 0)
  511. GO
  512. CREATE INDEX [OrderID] ON [dbo].[Order Details]([OrderID]) ON [PRIMARY]
  513. GO
  514. CREATE INDEX [OrdersOrder_Details] ON [dbo].[Order Details]([OrderID]) ON [PRIMARY]
  515. GO
  516. CREATE INDEX [ProductID] ON [dbo].[Order Details]([ProductID]) ON [PRIMARY]
  517. GO
  518. CREATE INDEX [ProductsOrder_Details] ON [dbo].[Order Details]([ProductID]) ON [PRIMARY]
  519. GO
  520. ALTER TABLE [dbo].[Orders] ADD
  521. CONSTRAINT [DF_Orders_Freight] DEFAULT (0) FOR [Freight]
  522. GO
  523. CREATE INDEX [CustomerID] ON [dbo].[Orders]([CustomerID]) ON [PRIMARY]
  524. GO
  525. CREATE INDEX [CustomersOrders] ON [dbo].[Orders]([CustomerID]) ON [PRIMARY]
  526. GO
  527. CREATE INDEX [EmployeeID] ON [dbo].[Orders]([EmployeeID]) ON [PRIMARY]
  528. GO
  529. CREATE INDEX [EmployeesOrders] ON [dbo].[Orders]([EmployeeID]) ON [PRIMARY]
  530. GO
  531. CREATE INDEX [OrderDate] ON [dbo].[Orders]([OrderDate]) ON [PRIMARY]
  532. GO
  533. CREATE INDEX [ShippedDate] ON [dbo].[Orders]([ShippedDate]) ON [PRIMARY]
  534. GO
  535. CREATE INDEX [ShippersOrders] ON [dbo].[Orders]([ShipVia]) ON [PRIMARY]
  536. GO
  537. CREATE INDEX [ShipPostalCode] ON [dbo].[Orders]([ShipPostalCode]) ON [PRIMARY]
  538. GO
  539. ALTER TABLE [dbo].[Products] ADD
  540. CONSTRAINT [DF_Products_UnitPrice] DEFAULT (0) FOR [UnitPrice],
  541. CONSTRAINT [DF_Products_UnitsInStock] DEFAULT (0) FOR [UnitsInStock],
  542. CONSTRAINT [DF_Products_UnitsOnOrder] DEFAULT (0) FOR [UnitsOnOrder],
  543. CONSTRAINT [DF_Products_ReorderLevel] DEFAULT (0) FOR [ReorderLevel],
  544. CONSTRAINT [DF_Products_Discontinued] DEFAULT (0) FOR [Discontinued],
  545. CONSTRAINT [CK_Products_UnitPrice] CHECK ([UnitPrice] >= 0),
  546. CONSTRAINT [CK_ReorderLevel] CHECK ([ReorderLevel] >= 0),
  547. CONSTRAINT [CK_UnitsInStock] CHECK ([UnitsInStock] >= 0),
  548. CONSTRAINT [CK_UnitsOnOrder] CHECK ([UnitsOnOrder] >= 0)
  549. GO
  550. CREATE INDEX [CategoriesProducts] ON [dbo].[Products]([CategoryID]) ON [PRIMARY]
  551. GO
  552. CREATE INDEX [CategoryID] ON [dbo].[Products]([CategoryID]) ON [PRIMARY]
  553. GO
  554. CREATE INDEX [ProductName] ON [dbo].[Products]([ProductName]) ON [PRIMARY]
  555. GO
  556. CREATE INDEX [SupplierID] ON [dbo].[Products]([SupplierID]) ON [PRIMARY]
  557. GO
  558. CREATE INDEX [SuppliersProducts] ON [dbo].[Products]([SupplierID]) ON [PRIMARY]
  559. GO
  560. ALTER TABLE [dbo].[Region] ADD
  561. CONSTRAINT [PK_Region] PRIMARY KEY NONCLUSTERED
  562. (
  563. [RegionID]
  564. ) ON [PRIMARY]
  565. GO
  566. CREATE INDEX [CompanyName] ON [dbo].[Suppliers]([CompanyName]) ON [PRIMARY]
  567. GO
  568. CREATE INDEX [PostalCode] ON [dbo].[Suppliers]([PostalCode]) ON [PRIMARY]
  569. GO
  570. ALTER TABLE [dbo].[Territories] ADD
  571. CONSTRAINT [PK_Territories] PRIMARY KEY NONCLUSTERED
  572. (
  573. [TerritoryID]
  574. ) ON [PRIMARY]
  575. GO
  576. ALTER TABLE [dbo].[CustomerCustomerDemo] ADD
  577. CONSTRAINT [FK_CustomerCustomerDemo] FOREIGN KEY
  578. (
  579. [CustomerTypeID]
  580. ) REFERENCES [dbo].[CustomerDemographics] (
  581. [CustomerTypeID]
  582. ),
  583. CONSTRAINT [FK_CustomerCustomerDemo_Customers] FOREIGN KEY
  584. (
  585. [CustomerID]
  586. ) REFERENCES [dbo].[Customers] (
  587. [CustomerID]
  588. )
  589. GO
  590. ALTER TABLE [dbo].[EmployeeTerritories] ADD
  591. CONSTRAINT [FK_EmployeeTerritories_Employees] FOREIGN KEY
  592. (
  593. [EmployeeID]
  594. ) REFERENCES [dbo].[Employees] (
  595. [EmployeeID]
  596. ),
  597. CONSTRAINT [FK_EmployeeTerritories_Territories] FOREIGN KEY
  598. (
  599. [TerritoryID]
  600. ) REFERENCES [dbo].[Territories] (
  601. [TerritoryID]
  602. )
  603. GO
  604. ALTER TABLE [dbo].[Employees] ADD
  605. CONSTRAINT [FK_Employees_Employees] FOREIGN KEY
  606. (
  607. [ReportsTo]
  608. ) REFERENCES [dbo].[Employees] (
  609. [EmployeeID]
  610. )
  611. GO
  612. ALTER TABLE [dbo].[Order Details] ADD
  613. CONSTRAINT [FK_Order_Details_Orders] FOREIGN KEY
  614. (
  615. [OrderID]
  616. ) REFERENCES [dbo].[Orders] (
  617. [OrderID]
  618. ),
  619. CONSTRAINT [FK_Order_Details_Products] FOREIGN KEY
  620. (
  621. [ProductID]
  622. ) REFERENCES [dbo].[Products] (
  623. [ProductID]
  624. )
  625. GO
  626. ALTER TABLE [dbo].[Orders] ADD
  627. CONSTRAINT [FK_Orders_Customers] FOREIGN KEY
  628. (
  629. [CustomerID]
  630. ) REFERENCES [dbo].[Customers] (
  631. [CustomerID]
  632. ),
  633. CONSTRAINT [FK_Orders_Employees] FOREIGN KEY
  634. (
  635. [EmployeeID]
  636. ) REFERENCES [dbo].[Employees] (
  637. [EmployeeID]
  638. ),
  639. CONSTRAINT [FK_Orders_Shippers] FOREIGN KEY
  640. (
  641. [ShipVia]
  642. ) REFERENCES [dbo].[Shippers] (
  643. [ShipperID]
  644. )
  645. GO
  646. ALTER TABLE [dbo].[Products] ADD
  647. CONSTRAINT [FK_Products_Categories] FOREIGN KEY
  648. (
  649. [CategoryID]
  650. ) REFERENCES [dbo].[Categories] (
  651. [CategoryID]
  652. ),
  653. CONSTRAINT [FK_Products_Suppliers] FOREIGN KEY
  654. (
  655. [SupplierID]
  656. ) REFERENCES [dbo].[Suppliers] (
  657. [SupplierID]
  658. )
  659. GO
  660. ALTER TABLE [dbo].[Territories] ADD
  661. CONSTRAINT [FK_Territories_Region] FOREIGN KEY
  662. (
  663. [RegionID]
  664. ) REFERENCES [dbo].[Region] (
  665. [RegionID]
  666. )
  667. GO
  668. SET QUOTED_IDENTIFIER ON
  669. GO
  670. SET ANSI_NULLS ON
  671. GO
  672. create view "Current Product List" AS
  673. SELECT Product_List.ProductID, Product_List.ProductName
  674. FROM Products AS Product_List
  675. WHERE (((Product_List.Discontinued)=0))
  676. --ORDER BY Product_List.ProductName
  677. GO
  678. SET QUOTED_IDENTIFIER OFF
  679. GO
  680. SET ANSI_NULLS ON
  681. GO
  682. SET QUOTED_IDENTIFIER ON
  683. GO
  684. SET ANSI_NULLS ON
  685. GO
  686. create view "Orders Qry" AS
  687. SELECT Orders.OrderID, Orders.CustomerID, Orders.EmployeeID, Orders.OrderDate, Orders.RequiredDate,
  688. Orders.ShippedDate, Orders.ShipVia, Orders.Freight, Orders.ShipName, Orders.ShipAddress, Orders.ShipCity,
  689. Orders.ShipRegion, Orders.ShipPostalCode, Orders.ShipCountry,
  690. Customers.CompanyName, Customers.Address, Customers.City, Customers.Region, Customers.PostalCode, Customers.Country
  691. FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID
  692. GO
  693. SET QUOTED_IDENTIFIER OFF
  694. GO
  695. SET ANSI_NULLS ON
  696. GO
  697. SET QUOTED_IDENTIFIER ON
  698. GO
  699. SET ANSI_NULLS ON
  700. GO
  701. create view "Products Above Average Price" AS
  702. SELECT Products.ProductName, Products.UnitPrice
  703. FROM Products
  704. WHERE Products.UnitPrice>(SELECT AVG(UnitPrice) From Products)
  705. --ORDER BY Products.UnitPrice DESC
  706. GO
  707. SET QUOTED_IDENTIFIER OFF
  708. GO
  709. SET ANSI_NULLS ON
  710. GO
  711. SET QUOTED_IDENTIFIER ON
  712. GO
  713. SET ANSI_NULLS ON
  714. GO
  715. create view "Products by Category" AS
  716. SELECT Categories.CategoryName, Products.ProductName, Products.QuantityPerUnit, Products.UnitsInStock, Products.Discontinued
  717. FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID
  718. WHERE Products.Discontinued <> 1
  719. --ORDER BY Categories.CategoryName, Products.ProductName
  720. GO
  721. SET QUOTED_IDENTIFIER OFF
  722. GO
  723. SET ANSI_NULLS ON
  724. GO
  725. SET QUOTED_IDENTIFIER ON
  726. GO
  727. SET ANSI_NULLS ON
  728. GO
  729. create view "Quarterly Orders" AS
  730. SELECT DISTINCT Customers.CustomerID, Customers.CompanyName, Customers.City, Customers.Country
  731. FROM Customers RIGHT JOIN Orders ON Customers.CustomerID = Orders.CustomerID
  732. WHERE Orders.OrderDate BETWEEN '19970101' And '19971231'
  733. GO
  734. SET QUOTED_IDENTIFIER OFF
  735. GO
  736. SET ANSI_NULLS ON
  737. GO
  738. SET QUOTED_IDENTIFIER ON
  739. GO
  740. SET ANSI_NULLS ON
  741. GO
  742. create view Invoices AS
  743. SELECT Orders.ShipName, Orders.ShipAddress, Orders.ShipCity, Orders.ShipRegion, Orders.ShipPostalCode,
  744. Orders.ShipCountry, Orders.CustomerID, Customers.CompanyName AS CustomerName, Customers.Address, Customers.City,
  745. Customers.Region, Customers.PostalCode, Customers.Country,
  746. (FirstName + ' ' + LastName) AS Salesperson,
  747. Orders.OrderID, Orders.OrderDate, Orders.RequiredDate, Orders.ShippedDate, Shippers.CompanyName As ShipperName,
  748. "Order Details".ProductID, Products.ProductName, "Order Details".UnitPrice, "Order Details".Quantity,
  749. "Order Details".Discount,
  750. (CONVERT(money,("Order Details".UnitPrice*Quantity*(1-Discount)/100))*100) AS ExtendedPrice, Orders.Freight
  751. FROM Shippers INNER JOIN
  752. (Products INNER JOIN
  753. (
  754. (Employees INNER JOIN
  755. (Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID)
  756. ON Employees.EmployeeID = Orders.EmployeeID)
  757. INNER JOIN "Order Details" ON Orders.OrderID = "Order Details".OrderID)
  758. ON Products.ProductID = "Order Details".ProductID)
  759. ON Shippers.ShipperID = Orders.ShipVia
  760. GO
  761. SET QUOTED_IDENTIFIER OFF
  762. GO
  763. SET ANSI_NULLS ON
  764. GO
  765. SET QUOTED_IDENTIFIER ON
  766. GO
  767. SET ANSI_NULLS ON
  768. GO
  769. create view "Order Details Extended" AS
  770. SELECT "Order Details".OrderID, "Order Details".ProductID, Products.ProductName,
  771. "Order Details".UnitPrice, "Order Details".Quantity, "Order Details".Discount,
  772. (CONVERT(money,("Order Details".UnitPrice*Quantity*(1-Discount)/100))*100) AS ExtendedPrice
  773. FROM Products INNER JOIN "Order Details" ON Products.ProductID = "Order Details".ProductID
  774. --ORDER BY "Order Details".OrderID
  775. GO
  776. SET QUOTED_IDENTIFIER OFF
  777. GO
  778. SET ANSI_NULLS ON
  779. GO
  780. SET QUOTED_IDENTIFIER ON
  781. GO
  782. SET ANSI_NULLS ON
  783. GO
  784. create view "Order Subtotals" AS
  785. SELECT "Order Details".OrderID, Sum(CONVERT(money,("Order Details".UnitPrice*Quantity*(1-Discount)/100))*100) AS Subtotal
  786. FROM "Order Details"
  787. GROUP BY "Order Details".OrderID
  788. GO
  789. SET QUOTED_IDENTIFIER OFF
  790. GO
  791. SET ANSI_NULLS ON
  792. GO
  793. SET QUOTED_IDENTIFIER ON
  794. GO
  795. SET ANSI_NULLS ON
  796. GO
  797. create view "Product Sales for 1997" AS
  798. SELECT Categories.CategoryName, Products.ProductName,
  799. Sum(CONVERT(money,("Order Details".UnitPrice*Quantity*(1-Discount)/100))*100) AS ProductSales
  800. FROM (Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID)
  801. INNER JOIN (Orders
  802. INNER JOIN "Order Details" ON Orders.OrderID = "Order Details".OrderID)
  803. ON Products.ProductID = "Order Details".ProductID
  804. WHERE (((Orders.ShippedDate) Between '19970101' And '19971231'))
  805. GROUP BY Categories.CategoryName, Products.ProductName
  806. GO
  807. SET QUOTED_IDENTIFIER OFF
  808. GO
  809. SET ANSI_NULLS ON
  810. GO
  811. SET QUOTED_IDENTIFIER ON
  812. GO
  813. SET ANSI_NULLS ON
  814. GO
  815. create view "Category Sales for 1997" AS
  816. SELECT "Product Sales for 1997".CategoryName, Sum("Product Sales for 1997".ProductSales) AS CategorySales
  817. FROM "Product Sales for 1997"
  818. GROUP BY "Product Sales for 1997".CategoryName
  819. GO
  820. SET QUOTED_IDENTIFIER OFF
  821. GO
  822. SET ANSI_NULLS ON
  823. GO
  824. SET QUOTED_IDENTIFIER ON
  825. GO
  826. SET ANSI_NULLS ON
  827. GO
  828. create view "Sales Totals by Amount" AS
  829. SELECT "Order Subtotals".Subtotal AS SaleAmount, Orders.OrderID, Customers.CompanyName, Orders.ShippedDate
  830. FROM Customers INNER JOIN
  831. (Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID)
  832. ON Customers.CustomerID = Orders.CustomerID
  833. WHERE ("Order Subtotals".Subtotal >2500) AND (Orders.ShippedDate BETWEEN '19970101' And '19971231')
  834. GO
  835. SET QUOTED_IDENTIFIER OFF
  836. GO
  837. SET ANSI_NULLS ON
  838. GO
  839. SET QUOTED_IDENTIFIER ON
  840. GO
  841. SET ANSI_NULLS ON
  842. GO
  843. create view "Sales by Category" AS
  844. SELECT Categories.CategoryID, Categories.CategoryName, Products.ProductName,
  845. Sum("Order Details Extended".ExtendedPrice) AS ProductSales
  846. FROM Categories INNER JOIN
  847. (Products INNER JOIN
  848. (Orders INNER JOIN "Order Details Extended" ON Orders.OrderID = "Order Details Extended".OrderID)
  849. ON Products.ProductID = "Order Details Extended".ProductID)
  850. ON Categories.CategoryID = Products.CategoryID
  851. WHERE Orders.OrderDate BETWEEN '19970101' And '19971231'
  852. GROUP BY Categories.CategoryID, Categories.CategoryName, Products.ProductName
  853. --ORDER BY Products.ProductName
  854. GO
  855. SET QUOTED_IDENTIFIER OFF
  856. GO
  857. SET ANSI_NULLS ON
  858. GO
  859. SET QUOTED_IDENTIFIER ON
  860. GO
  861. SET ANSI_NULLS ON
  862. GO
  863. create view "Summary of Sales by Quarter" AS
  864. SELECT Orders.ShippedDate, Orders.OrderID, "Order Subtotals".Subtotal
  865. FROM Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID
  866. WHERE Orders.ShippedDate IS NOT NULL
  867. --ORDER BY Orders.ShippedDate
  868. GO
  869. SET QUOTED_IDENTIFIER OFF
  870. GO
  871. SET ANSI_NULLS ON
  872. GO
  873. SET QUOTED_IDENTIFIER ON
  874. GO
  875. SET ANSI_NULLS ON
  876. GO
  877. create view "Summary of Sales by Year" AS
  878. SELECT Orders.ShippedDate, Orders.OrderID, "Order Subtotals".Subtotal
  879. FROM Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID
  880. WHERE Orders.ShippedDate IS NOT NULL
  881. --ORDER BY Orders.ShippedDate
  882. GO
  883. SET QUOTED_IDENTIFIER OFF
  884. GO
  885. SET ANSI_NULLS ON
  886. GO
  887. SET QUOTED_IDENTIFIER ON
  888. GO
  889. SET ANSI_NULLS ON
  890. GO
  891. CREATE PROCEDURE CustOrderHist @CustomerID nchar(5)
  892. AS
  893. SELECT ProductName, Total=SUM(Quantity)
  894. FROM Products P, [Order Details] OD, Orders O, Customers C
  895. WHERE C.CustomerID = @CustomerID
  896. AND C.CustomerID = O.CustomerID AND O.OrderID = OD.OrderID AND OD.ProductID = P.ProductID
  897. GROUP BY ProductName
  898. GO
  899. SET QUOTED_IDENTIFIER OFF
  900. GO
  901. SET ANSI_NULLS ON
  902. GO
  903. SET QUOTED_IDENTIFIER ON
  904. GO
  905. SET ANSI_NULLS ON
  906. GO
  907. CREATE PROCEDURE CustOrdersDetail @OrderID int
  908. AS
  909. SELECT ProductName,
  910. UnitPrice=ROUND(Od.UnitPrice, 2),
  911. Quantity,
  912. Discount=CONVERT(int, Discount * 100),
  913. ExtendedPrice=ROUND(CONVERT(money, Quantity * (1 - Discount) * Od.UnitPrice), 2)
  914. FROM Products P, [Order Details] Od
  915. WHERE Od.ProductID = P.ProductID and Od.OrderID = @OrderID
  916. GO
  917. SET QUOTED_IDENTIFIER OFF
  918. GO
  919. SET ANSI_NULLS ON
  920. GO
  921. SET QUOTED_IDENTIFIER ON
  922. GO
  923. SET ANSI_NULLS ON
  924. GO
  925. CREATE PROCEDURE CustOrdersOrders @CustomerID nchar(5)
  926. AS
  927. SELECT OrderID,
  928. OrderDate,
  929. RequiredDate,
  930. ShippedDate
  931. FROM Orders
  932. WHERE CustomerID = @CustomerID
  933. ORDER BY OrderID
  934. GO
  935. SET QUOTED_IDENTIFIER OFF
  936. GO
  937. SET ANSI_NULLS ON
  938. GO
  939. SET QUOTED_IDENTIFIER ON
  940. GO
  941. SET ANSI_NULLS ON
  942. GO
  943. create procedure "Employee Sales by Country"
  944. @Beginning_Date DateTime, @Ending_Date DateTime AS
  945. SELECT Employees.Country, Employees.LastName, Employees.FirstName, Orders.ShippedDate, Orders.OrderID, "Order Subtotals".Subtotal AS SaleAmount
  946. FROM Employees INNER JOIN
  947. (Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID)
  948. ON Employees.EmployeeID = Orders.EmployeeID
  949. WHERE Orders.ShippedDate Between @Beginning_Date And @Ending_Date
  950. GO
  951. SET QUOTED_IDENTIFIER OFF
  952. GO
  953. SET ANSI_NULLS ON
  954. GO
  955. SET QUOTED_IDENTIFIER ON
  956. GO
  957. SET ANSI_NULLS ON
  958. GO
  959. CREATE PROCEDURE GH_CREATETABLE
  960. AS
  961. Begin
  962. --craete a temporary table
  963. Create Table #temp_tbl (
  964. Col1 int,
  965. Col2 int
  966. )
  967. --insert values to the table
  968. insert into #temp_tbl values (11,12)
  969. insert into #temp_tbl values (21,22)
  970. insert into #temp_tbl values (31,32)
  971. --execute select on the created table
  972. select col1 as Value1, col2 as Value2 from #temp_tbl;
  973. --Update Return code
  974. end
  975. GO
  976. SET QUOTED_IDENTIFIER OFF
  977. GO
  978. SET ANSI_NULLS ON
  979. GO
  980. SET QUOTED_IDENTIFIER ON
  981. GO
  982. SET ANSI_NULLS ON
  983. GO
  984. CREATE PROCEDURE GH_MultiRecordSets
  985. as BEGIN
  986. -- Declare cursor
  987. SELECT EmployeeId, LastName FROM Employees where EmployeeId in (1,2) order by EmployeeId asc;
  988. SELECT CustomerId, CompanyName,ContactName FROM Customers where CustomerId in ('MORGK','NORTS') order by customerid asc;
  989. -- return empty result set
  990. SELECT OrderId, ShipAddress,ShipVia, ShipCity FROM Orders where OrderId=-1 ;
  991. END
  992. GO
  993. CREATE procedure GH_INOUT1
  994. @INPARAM varchar(20) ,
  995. @OUTPARAM int output
  996. AS
  997. declare @L_INPARAM varchar(30)
  998. select L_INPARAM = @INPARAM
  999. select @OUTPARAM = 100
  1000. GO
  1001. CREATE procedure GH_REFCURSOR1
  1002. AS
  1003. SELECT EmployeeId, LastName FROM Employees
  1004. WHERE EmployeeId=1;
  1005. GO
  1006. CREATE procedure GH_REFCURSOR2
  1007. @IN_EMPLOYEEID int
  1008. AS
  1009. SELECT EmployeeId, LastName FROM Employees
  1010. where EmployeeId = @IN_EMPLOYEEID
  1011. GO
  1012. CREATE procedure GH_REFCURSOR3
  1013. @IN_LASTNAME varchar(20) AS
  1014. SELECT EmployeeId, LastName FROM Employees
  1015. where LastName = @IN_LASTNAME
  1016. GO
  1017. SET QUOTED_IDENTIFIER OFF
  1018. GO
  1019. SET ANSI_NULLS ON
  1020. GO
  1021. SET QUOTED_IDENTIFIER ON
  1022. GO
  1023. SET ANSI_NULLS ON
  1024. GO
  1025. create procedure "Sales by Year"
  1026. @Beginning_Date DateTime, @Ending_Date DateTime AS
  1027. SELECT Orders.ShippedDate, Orders.OrderID, "Order Subtotals".Subtotal, DATENAME(yy,ShippedDate) AS Year
  1028. FROM Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID
  1029. WHERE Orders.ShippedDate Between @Beginning_Date And @Ending_Date
  1030. GO
  1031. SET QUOTED_IDENTIFIER OFF
  1032. GO
  1033. SET ANSI_NULLS ON
  1034. GO
  1035. SET QUOTED_IDENTIFIER ON
  1036. GO
  1037. SET ANSI_NULLS ON
  1038. GO
  1039. CREATE PROCEDURE SalesByCategory
  1040. @CategoryName nvarchar(15), @OrdYear nvarchar(4) = '1998'
  1041. AS
  1042. IF @OrdYear != '1996' AND @OrdYear != '1997' AND @OrdYear != '1998'
  1043. BEGIN
  1044. SELECT @OrdYear = '1998'
  1045. END
  1046. SELECT ProductName,
  1047. TotalPurchase=ROUND(SUM(CONVERT(decimal(14,2), OD.Quantity * (1-OD.Discount) * OD.UnitPrice)), 0)
  1048. FROM [Order Details] OD, Orders O, Products P, Categories C
  1049. WHERE OD.OrderID = O.OrderID
  1050. AND OD.ProductID = P.ProductID
  1051. AND P.CategoryID = C.CategoryID
  1052. AND C.CategoryName = @CategoryName
  1053. AND SUBSTRING(CONVERT(nvarchar(22), O.OrderDate, 111), 1, 4) = @OrdYear
  1054. GROUP BY ProductName
  1055. ORDER BY ProductName
  1056. GO
  1057. SET QUOTED_IDENTIFIER OFF
  1058. GO
  1059. SET ANSI_NULLS ON
  1060. GO
  1061. SET QUOTED_IDENTIFIER ON
  1062. GO
  1063. SET ANSI_NULLS ON
  1064. GO
  1065. create procedure "Ten Most Expensive Products" AS
  1066. SET ROWCOUNT 10
  1067. SELECT Products.ProductName AS TenMostExpensiveProducts, Products.UnitPrice
  1068. FROM Products
  1069. ORDER BY Products.UnitPrice DESC
  1070. GO
  1071. SET QUOTED_IDENTIFIER OFF
  1072. GO
  1073. SET ANSI_NULLS ON
  1074. GO
  1075. CREATE PROCEDURE GHSP_TYPES_SIMPLE_1
  1076. @T_BIT bit ,
  1077. @T_TINYINT tinyint,
  1078. @T_SMALLINT smallint ,
  1079. @T_INT int,
  1080. @T_BIGINT bigint,
  1081. @T_DECIMAL decimal(18, 0),
  1082. @T_NUMERIC numeric(18, 0) ,
  1083. @T_FLOAT float ,
  1084. @T_REAL real ,
  1085. @T_CHAR char (10),
  1086. @T_NCHAR nchar (10),
  1087. @T_VARCHAR varchar (50) ,
  1088. @T_NVARCHAR nvarchar (50)
  1089. AS
  1090. 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',
  1091. @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'
  1092. GO
  1093. SET QUOTED_IDENTIFIER OFF
  1094. GO
  1095. SET ANSI_NULLS ON
  1096. GO
  1097. SET QUOTED_IDENTIFIER OFF
  1098. GO
  1099. SET ANSI_NULLS OFF
  1100. GO
  1101. CREATE PROCEDURE GHSP_TYPES_SIMPLE_2
  1102. @T_BIT bit output,
  1103. @T_TINYINT tinyint output,
  1104. @T_SMALLINT smallint output,
  1105. @T_INT int output,
  1106. @T_BIGINT bigint output,
  1107. @T_DECIMAL decimal(18, 0) output,
  1108. @T_NUMERIC numeric(18, 0) output,
  1109. @T_FLOAT float output,
  1110. @T_REAL real output,
  1111. @T_CHAR char (10) output,
  1112. @T_NCHAR nchar (10) output,
  1113. @T_VARCHAR varchar (50) output,
  1114. @T_NVARCHAR nvarchar (50) output
  1115. AS
  1116. IF @T_BIT=0
  1117. SELECT @T_BIT=1
  1118. ELSE IF (@T_BIT=1)
  1119. SELECT @T_BIT=0
  1120. SELECT @T_TINYINT = @T_TINYINT*2
  1121. SELECT @T_SMALLINT = @T_SMALLINT*2
  1122. SELECT @T_INT = @T_INT*2
  1123. SELECT @T_BIGINT = @T_BIGINT*2
  1124. SELECT @T_DECIMAL = @T_DECIMAL*2
  1125. SELECT @T_NUMERIC = @T_NUMERIC*2
  1126. SELECT @T_FLOAT = @T_FLOAT*2
  1127. SELECT @T_REAL = @T_REAL*2
  1128. SELECT @T_CHAR = UPPER(@T_CHAR)
  1129. SELECT @T_NCHAR =UPPER(@T_NCHAR)
  1130. SELECT @T_VARCHAR = UPPER(@T_VARCHAR)
  1131. SELECT @T_NVARCHAR = UPPER(@T_NVARCHAR)
  1132. GO
  1133. SET QUOTED_IDENTIFIER OFF
  1134. GO
  1135. SET ANSI_NULLS ON
  1136. GO
  1137. SET QUOTED_IDENTIFIER OFF
  1138. GO
  1139. SET ANSI_NULLS OFF
  1140. GO
  1141. CREATE PROCEDURE GHSP_TYPES_SIMPLE_3
  1142. @ID char,
  1143. @T_BIT bit output,
  1144. @T_TINYINT tinyint output,
  1145. @T_SMALLINT smallint output,
  1146. @T_INT int output,
  1147. @T_BIGINT bigint output,
  1148. @T_DECIMAL decimal(18, 0) output,
  1149. @T_NUMERIC numeric(18, 0) output,
  1150. @T_FLOAT float output,
  1151. @T_REAL real output,
  1152. @T_CHAR char (10) output,
  1153. @T_NCHAR nchar (10) output,
  1154. @T_VARCHAR varchar (50) output,
  1155. @T_NVARCHAR nvarchar (50) output
  1156. AS
  1157. 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 ,
  1158. @T_NUMERIC = T_NUMERIC , @T_FLOAT = T_FLOAT , @T_REAL = T_REAL , @T_CHAR = T_CHAR, @T_NCHAR = T_NCHAR,
  1159. @T_VARCHAR = T_VARCHAR, @T_NVARCHAR = T_NVARCHAR FROM TYPES_SIMPLE WHERE ID = @ID
  1160. GO
  1161. SET QUOTED_IDENTIFIER OFF
  1162. GO
  1163. SET ANSI_NULLS ON
  1164. GO
  1165. SET QUOTED_IDENTIFIER OFF
  1166. GO
  1167. SET ANSI_NULLS OFF
  1168. GO
  1169. CREATE PROCEDURE GHSP_TYPES_SIMPLE_4
  1170. @ID char
  1171. AS
  1172. /*Insert*/
  1173. insert into TYPES_SIMPLE(ID,T_INT) values (@ID,50)
  1174. SELECT * FROM TYPES_SIMPLE WHERE ID = @ID
  1175. /*Update*/
  1176. update TYPES_SIMPLE set T_INT=60 where Id = @ID
  1177. SELECT * FROM TYPES_SIMPLE WHERE ID = @ID
  1178. /*Delete*/
  1179. delete from TYPES_SIMPLE WHERE ID = @ID
  1180. SELECT * FROM TYPES_SIMPLE WHERE ID = @ID
  1181. GO
  1182. SET QUOTED_IDENTIFIER OFF
  1183. GO
  1184. SET ANSI_NULLS ON
  1185. GO
  1186. SET QUOTED_IDENTIFIER OFF
  1187. GO
  1188. SET ANSI_NULLS OFF
  1189. GO
  1190. CREATE PROCEDURE GHSP_TYPES_SIMPLE_5
  1191. AS
  1192. DECLARE @T_BIT bit
  1193. DECLARE @T_TINYINT tinyint
  1194. DECLARE @T_SMALLINT smallint
  1195. DECLARE @T_INT int
  1196. DECLARE @T_BIGINT bigint
  1197. DECLARE @T_DECIMAL decimal(18,0)
  1198. DECLARE @T_NUMERIC numeric(18,0)
  1199. DECLARE @T_FLOAT float
  1200. DECLARE @T_REAL real
  1201. DECLARE @T_CHAR char(10)
  1202. DECLARE @T_NCHAR nchar(10)
  1203. DECLARE @T_VARCHAR varchar(50)
  1204. DECLARE @T_NVARCHAR nvarchar(50)
  1205. SELECT @T_BIT = 1
  1206. SELECT @T_TINYINT = 25
  1207. SELECT @T_SMALLINT = 77
  1208. SELECT @T_INT = 2525
  1209. SELECT @T_BIGINT = 25251414
  1210. SELECT @T_DECIMAL = 10
  1211. SELECT @T_NUMERIC = 123123
  1212. SELECT @T_FLOAT = 17.1414257
  1213. SELECT @T_REAL = 0.71425
  1214. SELECT @T_CHAR = 'abcdefghij'
  1215. SELECT @T_NCHAR = N'klmnopqrst'
  1216. SELECT @T_VARCHAR = 'qwertasdfg'
  1217. SELECT @T_NVARCHAR = N'qwertasdfg'
  1218. 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'
  1219. GO
  1220. SET QUOTED_IDENTIFIER OFF
  1221. GO
  1222. SET ANSI_NULLS ON
  1223. GO
  1224. if not exists (select * from master.dbo.syslogins where loginname = N'mainsoft')
  1225. BEGIN
  1226. declare @logindb nvarchar(132), @loginlang nvarchar(132) select @logindb = N'GHTDB', @loginlang = N'us_english'
  1227. if @logindb is null or not exists (select * from master.dbo.sysdatabases where name = @logindb)
  1228. select @logindb = N'master'
  1229. if @loginlang is null or (not exists (select * from master.dbo.syslanguages where name = @loginlang) and @loginlang <> N'us_english')
  1230. select @loginlang = @@language
  1231. exec sp_addlogin N'mainsoft', null, @logindb, @loginlang
  1232. END
  1233. GO
  1234. exec sp_addsrvrolemember N'mainsoft', sysadmin
  1235. GO
  1236. if not exists (select * from dbo.sysusers where name = N'mainsoft' and uid < 16382)
  1237. EXEC sp_grantdbaccess N'mainsoft', N'mainsoft'
  1238. GO
  1239. SET QUOTED_IDENTIFIER ON
  1240. GO
  1241. SET ANSI_NULLS ON
  1242. GO
  1243. if exists (select * from dbo.sysobjects where id = object_id(N'[mainsoft].[CategoriesNew]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
  1244. drop table [mainsoft].[CategoriesNew]
  1245. GO
  1246. CREATE TABLE [mainsoft].[CategoriesNew] (
  1247. [CategoryID] [int] IDENTITY (1, 1) NOT NULL ,
  1248. [CategoryName] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
  1249. [Description] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  1250. [Picture] [image] NULL
  1251. ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
  1252. GO
  1253. CREATE TABLE [mainsoft].[Categories] (
  1254. [CategoryID] [nvarchar] (15) NOT NULL ,
  1255. [CategoryName] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
  1256. [Description] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  1257. [Picture] [int] NULL
  1258. ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
  1259. GO
  1260. CREATE procedure [mainsoft].[GH_DUMMY]
  1261. @EmployeeIdPrm char (10)
  1262. AS
  1263. SELECT * FROM Employees where EmployeeID > @EmployeeIdPrm
  1264. GO
  1265. SET QUOTED_IDENTIFIER OFF
  1266. GO
  1267. SET ANSI_NULLS ON
  1268. GO
  1269. ------------------------------------------------------------------------------------------------------------------
  1270. ------------------------------------------------------------------------------------------------------------------
  1271. ------------------------------------------------------------------------------------------------------------------
  1272. ------------------------------------------------------------------------------------------------------------------
  1273. IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'GHTDB_EX')
  1274. DROP DATABASE [GHTDB_EX]
  1275. GO
  1276. 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%)
  1277. COLLATE SQL_Latin1_General_CP1_CI_AS
  1278. GO
  1279. exec sp_dboption N'GHTDB_EX', N'autoclose', N'false'
  1280. GO
  1281. exec sp_dboption N'GHTDB_EX', N'bulkcopy', N'true'
  1282. GO
  1283. exec sp_dboption N'GHTDB_EX', N'trunc. log', N'true'
  1284. GO
  1285. exec sp_dboption N'GHTDB_EX', N'torn page detection', N'true'
  1286. GO
  1287. exec sp_dboption N'GHTDB_EX', N'read only', N'false'
  1288. GO
  1289. exec sp_dboption N'GHTDB_EX', N'dbo use', N'false'
  1290. GO
  1291. exec sp_dboption N'GHTDB_EX', N'single', N'false'
  1292. GO
  1293. exec sp_dboption N'GHTDB_EX', N'autoshrink', N'false'
  1294. GO
  1295. exec sp_dboption N'GHTDB_EX', N'ANSI null default', N'false'
  1296. GO
  1297. exec sp_dboption N'GHTDB_EX', N'recursive triggers', N'false'
  1298. GO
  1299. exec sp_dboption N'GHTDB_EX', N'ANSI nulls', N'false'
  1300. GO
  1301. exec sp_dboption N'GHTDB_EX', N'concat null yields null', N'false'
  1302. GO
  1303. exec sp_dboption N'GHTDB_EX', N'cursor close on commit', N'false'
  1304. GO
  1305. exec sp_dboption N'GHTDB_EX', N'default to local cursor', N'false'
  1306. GO
  1307. exec sp_dboption N'GHTDB_EX', N'quoted identifier', N'false'
  1308. GO
  1309. exec sp_dboption N'GHTDB_EX', N'ANSI warnings', N'false'
  1310. GO
  1311. exec sp_dboption N'GHTDB_EX', N'auto create statistics', N'true'
  1312. GO
  1313. exec sp_dboption N'GHTDB_EX', N'auto update statistics', N'true'
  1314. GO
  1315. if( ( (@@microsoftversion / power(2, 24) = 8) and (@@microsoftversion & 0xffff >= 724) ) or ( (@@microsoftversion / power(2, 24) = 7) and (@@microsoftversion & 0xffff >= 1082) ) )
  1316. exec sp_dboption N'GHTDB_EX', N'db chaining', N'false'
  1317. GO
  1318. use [GHTDB_EX]
  1319. GO
  1320. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GH_DUMMY]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
  1321. drop procedure [dbo].[GH_DUMMY]
  1322. GO
  1323. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Customers]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
  1324. drop table [dbo].[Customers]
  1325. GO
  1326. CREATE TABLE [dbo].[Customers] (
  1327. [CustomerID] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
  1328. [CompanyName] [nvarchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  1329. [ContactName] [nvarchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  1330. [ContactTitle] [nvarchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  1331. [Address] [nvarchar] (60) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  1332. [City] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  1333. [Region] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  1334. [PostalCode] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  1335. [Country] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  1336. [Phone] [nvarchar] (24) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
  1337. [Fax] [nvarchar] (24) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
  1338. ) ON [PRIMARY]
  1339. GO
  1340. SET QUOTED_IDENTIFIER OFF
  1341. GO
  1342. SET ANSI_NULLS OFF
  1343. GO
  1344. print '------------------------------'
  1345. print 'create another GH_DUMMY which select from a different table'
  1346. print 'customers instead of employees'
  1347. print '------------------------------'
  1348. go
  1349. CREATE procedure GH_DUMMY
  1350. @CustomerIdPrm char (10)
  1351. AS
  1352. SELECT * FROM Customers where CustomerID = @CustomerIdPrm
  1353. GO
  1354. SET QUOTED_IDENTIFIER OFF
  1355. GO
  1356. SET ANSI_NULLS ON
  1357. GO