GHTDB.MSSQL2005.sql 50 KB

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