GHTDB.SYBASE.sql 30 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184
  1. use master
  2. go
  3. set nocount on
  4. go
  5. set dateformat mdy
  6. go
  7. if exists (select * from master.dbo.sysdatabases
  8. where name = "GHTDB")
  9. begin
  10. drop database GHTDB
  11. end
  12. go
  13. print 'Creating the "GHTDB" database'
  14. go
  15. if (@@maxpagesize = 1024 * 2)
  16. create database GHTDB on default = 10
  17. else
  18. create database GHTDB on default = 10
  19. go
  20. exec sp_dboption N'GHTDB', N'trunc log on chkpt', true, 1
  21. print 'print1'
  22. go
  23. exec sp_dboption N'GHTDB', N'trunc. log', N'true', 1
  24. print 'print2'
  25. go
  26. exec sp_dboption N'GHTDB', N'read only', N'false', 1
  27. print 'print3'
  28. go
  29. exec sp_dboption N'GHTDB', N'dbo use', N'false', 1
  30. print 'print4'
  31. go
  32. -- exec sp_dboption N'GHTDB', N'cursor close on commit', N'false', 1
  33. -- exec sp_dboption N'GHTDB', N'abort tran on log full', N'true', 1
  34. print 'print5'
  35. go
  36. use GHTDB
  37. GO
  38. checkpoint
  39. go
  40. SET QUOTED_IDENTIFIER OFF
  41. GO
  42. print '------------------------------'
  43. print 'create tables - start'
  44. print '------------------------------'
  45. go
  46. CREATE TABLE [dbo].[TYPES_SIMPLE] (
  47. -- ID
  48. [ID] char(10) NULL,
  49. [T_BIT] [bit] DEFAULT 0 not null,
  50. -- integer
  51. [T_TINYINT] [tinyint] NULL ,
  52. [T_SMALLINT] [smallint] NULL ,
  53. [T_INT] [int] NULL ,
  54. -- float
  55. [T_DECIMAL] [decimal](18, 0) NULL ,
  56. [T_NUMERIC] [numeric](18, 7) NULL ,
  57. [T_FLOAT] [float] NULL ,
  58. [T_REAL] [real] NULL ,
  59. -- text
  60. [T_CHAR] [char] (10) NULL ,
  61. [T_NCHAR] [nchar] (10) NULL ,
  62. [T_VARCHAR] [varchar] (50) NULL ,
  63. [T_NVARCHAR] [nvarchar] (50) NULL
  64. ) ON [default]
  65. GO
  66. CREATE TABLE [dbo].[TYPES_EXTENDED] (
  67. -- ID
  68. [ID] char(10) NULL,
  69. -- Text
  70. [T_TEXT] [text] NULL ,
  71. [T_NTEXT] [nvarchar](1000) NULL ,
  72. -- Binary
  73. [T_BINARY] [binary] (50) NULL ,
  74. [T_VARBINARY] [varbinary] (50) NULL ,
  75. --Time
  76. [T_DATETIME] [datetime] NULL ,
  77. [T_SMALLDATETIME] [smalldatetime] NULL
  78. ) ON [default]
  79. CREATE TABLE [dbo].[TYPES_SPECIFIC] (
  80. -- ID
  81. [ID1] char(10) NULL
  82. ) ON [default]
  83. GO
  84. CREATE TABLE [dbo].[Categories] (
  85. [CategoryID] numeric(5,0) IDENTITY NOT NULL ,
  86. [CategoryName] [nvarchar] (15) NOT NULL ,
  87. [Description] [nvarchar](1000) NULL ,
  88. [Picture] [image] NULL
  89. ) ON [default]
  90. GO
  91. CREATE TABLE [dbo].[CustomerCustomerDemo] (
  92. [CustomerID] [nchar] (5) NOT NULL ,
  93. [CustomerTypeID] [nchar] (10) NOT NULL
  94. ) ON [default]
  95. GO
  96. CREATE TABLE [dbo].[CustomerDemographics] (
  97. [CustomerTypeID] [nchar] (10) NOT NULL ,
  98. [CustomerDesc] [nvarchar](1000) NULL
  99. ) ON [default]
  100. GO
  101. CREATE TABLE [dbo].[Customers] (
  102. [CustomerID] [nchar] (5) NOT NULL ,
  103. [CompanyName] [nvarchar] (40) NOT NULL ,
  104. [ContactName] [nvarchar] (30) NULL ,
  105. [ContactTitle] [nvarchar] (30) NULL ,
  106. [Address] [nvarchar] (60) NULL ,
  107. [City] [nvarchar] (15) NULL ,
  108. [Region] [nvarchar] (15) NULL ,
  109. [PostalCode] [nvarchar] (10) NULL ,
  110. [Country] [nvarchar] (15) NULL ,
  111. [Phone] [nvarchar] (24) NULL ,
  112. [Fax] [nvarchar] (24) NULL
  113. ) ON [default]
  114. GO
  115. CREATE TABLE [dbo].[EmployeeTerritories] (
  116. [EmployeeID] [int] NOT NULL ,
  117. [TerritoryID] [nvarchar] (20) NOT NULL
  118. ) ON [default]
  119. GO
  120. CREATE TABLE [dbo].[Employees] (
  121. [EmployeeID] [int] NOT NULL ,
  122. [LastName] [nvarchar] (20) NOT NULL ,
  123. [FirstName] [nvarchar] (10) NOT NULL ,
  124. [Title] [nvarchar] (30) NULL ,
  125. [TitleOfCourtesy] [nvarchar] (25) NULL ,
  126. [BirthDate] [datetime] NULL ,
  127. [HireDate] [datetime] NULL ,
  128. [Address] [nvarchar] (60) NULL ,
  129. [City] [nvarchar] (15) NULL ,
  130. [Region] [nvarchar] (15) NULL ,
  131. [PostalCode] [nvarchar] (10) NULL ,
  132. [Country] [nvarchar] (15) NULL ,
  133. [HomePhone] [nvarchar] (24) NULL ,
  134. [Extension] [nvarchar] (4) NULL ,
  135. [Photo] [image] NULL ,
  136. [Notes] [nvarchar](1000) NULL ,
  137. [ReportsTo] [int] NULL ,
  138. [PhotoPath] [nvarchar] (255) NULL
  139. ) ON [default]
  140. GO
  141. CREATE TABLE [dbo].[GH_EMPTYTABLE] (
  142. [Col1] [int] NULL ,
  143. [Col2] [varchar] (50) NULL
  144. ) ON [default]
  145. GO
  146. CREATE TABLE [dbo].[Order Details] (
  147. [OrderID] numeric(5,0) NOT NULL ,
  148. [ProductID] numeric(5,0) NOT NULL ,
  149. [UnitPrice] [money] DEFAULT (0) NOT NULL ,
  150. [Quantity] [smallint] DEFAULT (1) NOT NULL ,
  151. [Discount] [real] DEFAULT (0) NOT NULL
  152. ) ON [default]
  153. GO
  154. CREATE TABLE [dbo].[Orders] (
  155. [OrderID] numeric(5,0) IDENTITY NOT NULL ,
  156. [CustomerID] [nchar] (5) NULL ,
  157. [EmployeeID] [int] NULL ,
  158. [OrderDate] [datetime] NULL ,
  159. [RequiredDate] [datetime] NULL ,
  160. [ShippedDate] [datetime] NULL ,
  161. [ShipVia] numeric(5,0) NULL ,
  162. [Freight] [money] DEFAULT (0) NULL ,
  163. [ShipName] [nvarchar] (40) NULL ,
  164. [ShipAddress] [nvarchar] (60) NULL ,
  165. [ShipCity] [nvarchar] (15) NULL ,
  166. [ShipRegion] [nvarchar] (15) NULL ,
  167. [ShipPostalCode] [nvarchar] (10) NULL ,
  168. [ShipCountry] [nvarchar] (15) NULL
  169. ) ON [default]
  170. GO
  171. CREATE TABLE [dbo].[Products] (
  172. [ProductID] numeric(5,0) IDENTITY NOT NULL ,
  173. [ProductName] [nvarchar] (40) NOT NULL ,
  174. [SupplierID] numeric(5,0) NULL ,
  175. [CategoryID] numeric(5,0) NULL ,
  176. [QuantityPerUnit] [nvarchar] (20) NULL ,
  177. [UnitPrice] [money] DEFAULT (0) NULL ,
  178. [UnitsInStock] [smallint] DEFAULT (0) NULL ,
  179. [UnitsOnOrder] [smallint] DEFAULT (0) NULL ,
  180. [ReorderLevel] [smallint] DEFAULT (0) NULL ,
  181. [Discontinued] [bit] NOT NULL
  182. ) ON [default]
  183. GO
  184. CREATE TABLE [dbo].[Region] (
  185. [RegionID] [int] NOT NULL ,
  186. [RegionDescription] [nchar] (50) NOT NULL
  187. ) ON [default]
  188. GO
  189. CREATE TABLE [dbo].[Shippers] (
  190. [ShipperID] numeric(5,0) IDENTITY NOT NULL ,
  191. [CompanyName] [nvarchar] (40) NOT NULL ,
  192. [Phone] [nvarchar] (24) NULL
  193. ) ON [default]
  194. GO
  195. CREATE TABLE [dbo].[Suppliers] (
  196. [SupplierID] numeric(5,0) IDENTITY NOT NULL ,
  197. [CompanyName] [nvarchar] (40) NOT NULL ,
  198. [ContactName] [nvarchar] (30) NULL ,
  199. [ContactTitle] [nvarchar] (30) NULL ,
  200. [Address] [nvarchar] (60) NULL ,
  201. [City] [nvarchar] (15) NULL ,
  202. [Region] [nvarchar] (15) NULL ,
  203. [PostalCode] [nvarchar] (10) NULL ,
  204. [Country] [nvarchar] (15) NULL ,
  205. [Phone] [nvarchar] (24) NULL ,
  206. [Fax] [nvarchar] (24) NULL ,
  207. [HomePage] [nvarchar](1000) NULL
  208. ) ON [default]
  209. GO
  210. CREATE TABLE [dbo].[Territories] (
  211. [TerritoryID] [nvarchar] (20) NOT NULL ,
  212. [TerritoryDescription] [nchar] (50) NOT NULL ,
  213. [RegionID] [int] NOT NULL
  214. ) ON [default]
  215. GO
  216. print '------------------------------'
  217. print 'create tables - finish'
  218. print '------------------------------'
  219. go
  220. ALTER TABLE [dbo].[Categories] ADD
  221. CONSTRAINT [PK_Categories] PRIMARY KEY CLUSTERED
  222. (
  223. [CategoryID]
  224. ) ON [default]
  225. GO
  226. ALTER TABLE [dbo].[Customers] ADD
  227. CONSTRAINT [PK_Customers] PRIMARY KEY CLUSTERED
  228. (
  229. [CustomerID]
  230. ) ON [default]
  231. GO
  232. ALTER TABLE [dbo].[Employees] ADD
  233. CONSTRAINT [PK_Employees] PRIMARY KEY CLUSTERED
  234. (
  235. [EmployeeID]
  236. ) ON [default]
  237. GO
  238. ALTER TABLE [dbo].[Order Details] ADD
  239. CONSTRAINT [PK_Order_Details] PRIMARY KEY CLUSTERED
  240. (
  241. [OrderID],
  242. [ProductID]
  243. ) ON [default]
  244. GO
  245. ALTER TABLE [dbo].[Orders] ADD
  246. CONSTRAINT [PK_Orders] PRIMARY KEY CLUSTERED
  247. (
  248. [OrderID]
  249. ) ON [default]
  250. GO
  251. ALTER TABLE [dbo].[Products] ADD
  252. CONSTRAINT [PK_Products] PRIMARY KEY CLUSTERED
  253. (
  254. [ProductID]
  255. ) ON [default]
  256. GO
  257. ALTER TABLE [dbo].[Shippers] ADD
  258. CONSTRAINT [PK_Shippers] PRIMARY KEY CLUSTERED
  259. (
  260. [ShipperID]
  261. ) ON [default]
  262. GO
  263. ALTER TABLE [dbo].[Suppliers] ADD
  264. CONSTRAINT [PK_Suppliers] PRIMARY KEY CLUSTERED
  265. (
  266. [SupplierID]
  267. ) ON [default]
  268. GO
  269. CREATE INDEX [CategoryName] ON [dbo].[Categories]([CategoryName]) ON [default]
  270. GO
  271. ALTER TABLE [dbo].[CustomerCustomerDemo] ADD
  272. CONSTRAINT [PK_CustomerCustomerDemo] PRIMARY KEY NONCLUSTERED
  273. (
  274. [CustomerID],
  275. [CustomerTypeID]
  276. ) ON [default]
  277. GO
  278. ALTER TABLE [dbo].[CustomerDemographics] ADD
  279. CONSTRAINT [PK_CustomerDemographics] PRIMARY KEY NONCLUSTERED
  280. (
  281. [CustomerTypeID]
  282. ) ON [default]
  283. GO
  284. CREATE INDEX [City] ON [dbo].[Customers]([City]) ON [default]
  285. GO
  286. CREATE INDEX [CompanyName] ON [dbo].[Customers]([CompanyName]) ON [default]
  287. GO
  288. CREATE INDEX [PostalCode] ON [dbo].[Customers]([PostalCode]) ON [default]
  289. GO
  290. CREATE INDEX [Region] ON [dbo].[Customers]([Region]) ON [default]
  291. GO
  292. ALTER TABLE [dbo].[EmployeeTerritories] ADD
  293. CONSTRAINT [PK_EmployeeTerritories] PRIMARY KEY NONCLUSTERED
  294. (
  295. [EmployeeID],
  296. [TerritoryID]
  297. ) ON [default]
  298. GO
  299. ALTER TABLE [dbo].[Employees] ADD
  300. CONSTRAINT [CK_Birthdate] CHECK ([BirthDate] < getdate())
  301. GO
  302. CREATE INDEX [LastName] ON [dbo].[Employees]([LastName]) ON [default]
  303. GO
  304. CREATE INDEX [PostalCode] ON [dbo].[Employees]([PostalCode]) ON [default]
  305. GO
  306. ALTER TABLE [dbo].[Order Details] ADD
  307. CONSTRAINT [CK_Discount] CHECK ([Discount] >= 0 and [Discount] <= 1),
  308. CONSTRAINT [CK_Quantity] CHECK ([Quantity] > 0),
  309. CONSTRAINT [CK_UnitPrice] CHECK ([UnitPrice] >= 0)
  310. GO
  311. print 'got here5'
  312. go
  313. CREATE INDEX [OrderID] ON [dbo].[Order Details]([OrderID]) ON [default]
  314. GO
  315. CREATE INDEX [OrdersOrder_Details] ON [dbo].[Order Details]([OrderID]) ON [default]
  316. GO
  317. CREATE INDEX [ProductID] ON [dbo].[Order Details]([ProductID]) ON [default]
  318. GO
  319. CREATE INDEX [ProductsOrder_Details] ON [dbo].[Order Details]([ProductID]) ON [default]
  320. GO
  321. CREATE INDEX [CustomerID] ON [dbo].[Orders]([CustomerID]) ON [default]
  322. GO
  323. CREATE INDEX [CustomersOrders] ON [dbo].[Orders]([CustomerID]) ON [default]
  324. GO
  325. CREATE INDEX [EmployeeID] ON [dbo].[Orders]([EmployeeID]) ON [default]
  326. GO
  327. CREATE INDEX [EmployeesOrders] ON [dbo].[Orders]([EmployeeID]) ON [default]
  328. GO
  329. CREATE INDEX [OrderDate] ON [dbo].[Orders]([OrderDate]) ON [default]
  330. GO
  331. CREATE INDEX [ShippedDate] ON [dbo].[Orders]([ShippedDate]) ON [default]
  332. GO
  333. CREATE INDEX [ShippersOrders] ON [dbo].[Orders]([ShipVia]) ON [default]
  334. GO
  335. CREATE INDEX [ShipPostalCode] ON [dbo].[Orders]([ShipPostalCode]) ON [default]
  336. GO
  337. print 'got here6'
  338. go
  339. ALTER TABLE [dbo].[Products] ADD
  340. CONSTRAINT [CK_Products_UnitPrice] CHECK ([UnitPrice] >= 0),
  341. CONSTRAINT [CK_ReorderLevel] CHECK ([ReorderLevel] >= 0),
  342. CONSTRAINT [CK_UnitsInStock] CHECK ([UnitsInStock] >= 0),
  343. CONSTRAINT [CK_UnitsOnOrder] CHECK ([UnitsOnOrder] >= 0)
  344. GO
  345. print 'got here7'
  346. go
  347. CREATE INDEX [CategoriesProducts] ON [dbo].[Products]([CategoryID]) ON [default]
  348. GO
  349. CREATE INDEX [CategoryID] ON [dbo].[Products]([CategoryID]) ON [default]
  350. GO
  351. CREATE INDEX [ProductName] ON [dbo].[Products]([ProductName]) ON [default]
  352. GO
  353. CREATE INDEX [SupplierID] ON [dbo].[Products]([SupplierID]) ON [default]
  354. GO
  355. CREATE INDEX [SuppliersProducts] ON [dbo].[Products]([SupplierID]) ON [default]
  356. GO
  357. ALTER TABLE [dbo].[Region] ADD
  358. CONSTRAINT [PK_Region] PRIMARY KEY NONCLUSTERED
  359. (
  360. [RegionID]
  361. ) ON [default]
  362. GO
  363. CREATE INDEX [CompanyName] ON [dbo].[Suppliers]([CompanyName]) ON [default]
  364. GO
  365. CREATE INDEX [PostalCode] ON [dbo].[Suppliers]([PostalCode]) ON [default]
  366. GO
  367. ALTER TABLE [dbo].[Territories] ADD
  368. CONSTRAINT [PK_Territories] PRIMARY KEY NONCLUSTERED
  369. (
  370. [TerritoryID]
  371. ) ON [default]
  372. GO
  373. ALTER TABLE [dbo].[CustomerCustomerDemo] ADD
  374. CONSTRAINT [FK_CustomerCustomerDemo] FOREIGN KEY
  375. (
  376. [CustomerTypeID]
  377. ) REFERENCES [dbo].[CustomerDemographics] (
  378. [CustomerTypeID]
  379. ),
  380. CONSTRAINT [FK_CustCustDemo_Customers] FOREIGN KEY
  381. (
  382. [CustomerID]
  383. ) REFERENCES [dbo].[Customers] (
  384. [CustomerID]
  385. )
  386. GO
  387. ALTER TABLE [dbo].[EmployeeTerritories] ADD
  388. CONSTRAINT [FK_EmpTer_Employees] FOREIGN KEY
  389. (
  390. [EmployeeID]
  391. ) REFERENCES [dbo].[Employees] (
  392. [EmployeeID]
  393. ),
  394. CONSTRAINT [FK_EmpTer_Ter] FOREIGN KEY
  395. (
  396. [TerritoryID]
  397. ) REFERENCES [dbo].[Territories] (
  398. [TerritoryID]
  399. )
  400. GO
  401. ALTER TABLE [dbo].[Employees] ADD
  402. CONSTRAINT [FK_Employees_Employees] FOREIGN KEY
  403. (
  404. [ReportsTo]
  405. ) REFERENCES [dbo].[Employees] (
  406. [EmployeeID]
  407. )
  408. GO
  409. ALTER TABLE [dbo].[Order Details] ADD
  410. CONSTRAINT [FK_Order_Details_Orders] FOREIGN KEY
  411. (
  412. [OrderID]
  413. ) REFERENCES [dbo].[Orders] (
  414. [OrderID]
  415. ),
  416. CONSTRAINT [FK_Order_Details_Products] FOREIGN KEY
  417. (
  418. [ProductID]
  419. ) REFERENCES [dbo].[Products] (
  420. [ProductID]
  421. )
  422. GO
  423. ALTER TABLE [dbo].[Orders] ADD
  424. CONSTRAINT [FK_Orders_Customers] FOREIGN KEY
  425. (
  426. [CustomerID]
  427. ) REFERENCES [dbo].[Customers] (
  428. [CustomerID]
  429. ),
  430. CONSTRAINT [FK_Orders_Employees] FOREIGN KEY
  431. (
  432. [EmployeeID]
  433. ) REFERENCES [dbo].[Employees] (
  434. [EmployeeID]
  435. ),
  436. CONSTRAINT [FK_Orders_Shippers] FOREIGN KEY
  437. (
  438. [ShipVia]
  439. ) REFERENCES [dbo].[Shippers] (
  440. [ShipperID]
  441. )
  442. GO
  443. ALTER TABLE [dbo].[Products] ADD
  444. CONSTRAINT [FK_Products_Categories] FOREIGN KEY
  445. (
  446. [CategoryID]
  447. ) REFERENCES [dbo].[Categories] (
  448. [CategoryID]
  449. ),
  450. CONSTRAINT [FK_Products_Suppliers] FOREIGN KEY
  451. (
  452. [SupplierID]
  453. ) REFERENCES [dbo].[Suppliers] (
  454. [SupplierID]
  455. )
  456. GO
  457. ALTER TABLE [dbo].[Territories] ADD
  458. CONSTRAINT [FK_Territories_Region] FOREIGN KEY
  459. (
  460. [RegionID]
  461. ) REFERENCES [dbo].[Region] (
  462. [RegionID]
  463. )
  464. GO
  465. SET QUOTED_IDENTIFIER ON
  466. GO
  467. print '------------------------------'
  468. print 'create views - start'
  469. print '------------------------------'
  470. go
  471. SET QUOTED_IDENTIFIER ON
  472. GO
  473. create view "Current Product List" AS
  474. SELECT Product_List.ProductID, Product_List.ProductName
  475. FROM Products AS Product_List
  476. WHERE (((Product_List.Discontinued)=0))
  477. --ORDER BY Product_List.ProductName
  478. GO
  479. SET QUOTED_IDENTIFIER OFF
  480. GO
  481. SET QUOTED_IDENTIFIER ON
  482. GO
  483. create view "Orders Qry" AS
  484. SELECT Orders.OrderID, Orders.CustomerID, Orders.EmployeeID, Orders.OrderDate, Orders.RequiredDate,
  485. Orders.ShippedDate, Orders.ShipVia, Orders.Freight, Orders.ShipName, Orders.ShipAddress, Orders.ShipCity,
  486. Orders.ShipRegion, Orders.ShipPostalCode, Orders.ShipCountry,
  487. Customers.CompanyName, Customers.Address, Customers.City, Customers.Region, Customers.PostalCode, Customers.Country
  488. FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID
  489. GO
  490. SET QUOTED_IDENTIFIER OFF
  491. GO
  492. SET QUOTED_IDENTIFIER ON
  493. GO
  494. create view "Products Above Average Price" AS
  495. SELECT Products.ProductName, Products.UnitPrice
  496. FROM Products
  497. WHERE Products.UnitPrice>(SELECT AVG(UnitPrice) From Products)
  498. --ORDER BY Products.UnitPrice DESC
  499. GO
  500. SET QUOTED_IDENTIFIER OFF
  501. GO
  502. SET QUOTED_IDENTIFIER ON
  503. GO
  504. create view "Products by Category" AS
  505. SELECT Categories.CategoryName, Products.ProductName, Products.QuantityPerUnit, Products.UnitsInStock, Products.Discontinued
  506. FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID
  507. WHERE Products.Discontinued <> 1
  508. --ORDER BY Categories.CategoryName, Products.ProductName
  509. GO
  510. SET QUOTED_IDENTIFIER OFF
  511. GO
  512. SET QUOTED_IDENTIFIER ON
  513. GO
  514. create view "Quarterly Orders" AS
  515. SELECT DISTINCT Customers.CustomerID, Customers.CompanyName, Customers.City, Customers.Country
  516. FROM Customers RIGHT JOIN Orders ON Customers.CustomerID = Orders.CustomerID
  517. WHERE Orders.OrderDate BETWEEN '19970101' And '19971231'
  518. GO
  519. SET QUOTED_IDENTIFIER OFF
  520. GO
  521. SET QUOTED_IDENTIFIER ON
  522. GO
  523. create view Invoices AS
  524. SELECT Orders.ShipName, Orders.ShipAddress, Orders.ShipCity, Orders.ShipRegion, Orders.ShipPostalCode,
  525. Orders.ShipCountry, Orders.CustomerID, Customers.CompanyName AS CustomerName, Customers.Address, Customers.City,
  526. Customers.Region, Customers.PostalCode, Customers.Country,
  527. (FirstName + ' ' + LastName) AS Salesperson,
  528. Orders.OrderID, Orders.OrderDate, Orders.RequiredDate, Orders.ShippedDate, Shippers.CompanyName As ShipperName,
  529. "Order Details".ProductID, Products.ProductName, "Order Details".UnitPrice, "Order Details".Quantity,
  530. "Order Details".Discount,
  531. (CONVERT(money,("Order Details".UnitPrice*Quantity*(1-Discount)/100))*100) AS ExtendedPrice, Orders.Freight
  532. FROM Shippers INNER JOIN
  533. (Products INNER JOIN
  534. (
  535. (Employees INNER JOIN
  536. (Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID)
  537. ON Employees.EmployeeID = Orders.EmployeeID)
  538. INNER JOIN "Order Details" ON Orders.OrderID = "Order Details".OrderID)
  539. ON Products.ProductID = "Order Details".ProductID)
  540. ON Shippers.ShipperID = Orders.ShipVia
  541. GO
  542. SET QUOTED_IDENTIFIER OFF
  543. GO
  544. SET QUOTED_IDENTIFIER ON
  545. GO
  546. create view "Order Details Extended" AS
  547. SELECT "Order Details".OrderID, "Order Details".ProductID, Products.ProductName,
  548. "Order Details".UnitPrice, "Order Details".Quantity, "Order Details".Discount,
  549. (CONVERT(money,("Order Details".UnitPrice*Quantity*(1-Discount)/100))*100) AS ExtendedPrice
  550. FROM Products INNER JOIN "Order Details" ON Products.ProductID = "Order Details".ProductID
  551. --ORDER BY "Order Details".OrderID
  552. GO
  553. SET QUOTED_IDENTIFIER OFF
  554. SET QUOTED_IDENTIFIER ON
  555. GO
  556. create view "Order Subtotals" AS
  557. SELECT "Order Details".OrderID, Sum(CONVERT(money,("Order Details".UnitPrice*Quantity*(1-Discount)/100))*100) AS Subtotal
  558. FROM "Order Details"
  559. GROUP BY "Order Details".OrderID
  560. GO
  561. SET QUOTED_IDENTIFIER OFF
  562. GO
  563. SET QUOTED_IDENTIFIER ON
  564. GO
  565. create view "Product Sales for 1997" AS
  566. SELECT Categories.CategoryName, Products.ProductName,
  567. Sum(CONVERT(money,("Order Details".UnitPrice*Quantity*(1-Discount)/100))*100) AS ProductSales
  568. FROM (Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID)
  569. INNER JOIN (Orders
  570. INNER JOIN "Order Details" ON Orders.OrderID = "Order Details".OrderID)
  571. ON Products.ProductID = "Order Details".ProductID
  572. WHERE (((Orders.ShippedDate) Between '19970101' And '19971231'))
  573. GROUP BY Categories.CategoryName, Products.ProductName
  574. GO
  575. SET QUOTED_IDENTIFIER OFF
  576. GO
  577. SET QUOTED_IDENTIFIER ON
  578. GO
  579. create view "Category Sales for 1997" AS
  580. SELECT "Product Sales for 1997".CategoryName, Sum("Product Sales for 1997".ProductSales) AS CategorySales
  581. FROM "Product Sales for 1997"
  582. GROUP BY "Product Sales for 1997".CategoryName
  583. GO
  584. SET QUOTED_IDENTIFIER OFF
  585. GO
  586. SET QUOTED_IDENTIFIER ON
  587. GO
  588. create view "Sales Totals by Amount" AS
  589. SELECT "Order Subtotals".Subtotal AS SaleAmount, Orders.OrderID, Customers.CompanyName, Orders.ShippedDate
  590. FROM Customers INNER JOIN
  591. (Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID)
  592. ON Customers.CustomerID = Orders.CustomerID
  593. WHERE ("Order Subtotals".Subtotal >2500) AND (Orders.ShippedDate BETWEEN '19970101' And '19971231')
  594. GO
  595. SET QUOTED_IDENTIFIER OFF
  596. GO
  597. SET QUOTED_IDENTIFIER ON
  598. GO
  599. create view "Sales by Category" AS
  600. SELECT Categories.CategoryID, Categories.CategoryName, Products.ProductName,
  601. Sum("Order Details Extended".ExtendedPrice) AS ProductSales
  602. FROM Categories INNER JOIN
  603. (Products INNER JOIN
  604. (Orders INNER JOIN "Order Details Extended" ON Orders.OrderID = "Order Details Extended".OrderID)
  605. ON Products.ProductID = "Order Details Extended".ProductID)
  606. ON Categories.CategoryID = Products.CategoryID
  607. WHERE Orders.OrderDate BETWEEN '19970101' And '19971231'
  608. GROUP BY Categories.CategoryID, Categories.CategoryName, Products.ProductName
  609. --ORDER BY Products.ProductName
  610. GO
  611. SET QUOTED_IDENTIFIER OFF
  612. GO
  613. SET QUOTED_IDENTIFIER ON
  614. GO
  615. create view "Summary of Sales by Quarter" AS
  616. SELECT Orders.ShippedDate, Orders.OrderID, "Order Subtotals".Subtotal
  617. FROM Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID
  618. WHERE Orders.ShippedDate IS NOT NULL
  619. --ORDER BY Orders.ShippedDate
  620. GO
  621. SET QUOTED_IDENTIFIER OFF
  622. GO
  623. SET QUOTED_IDENTIFIER ON
  624. GO
  625. create view "Summary of Sales by Year" AS
  626. SELECT Orders.ShippedDate, Orders.OrderID, "Order Subtotals".Subtotal
  627. FROM Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID
  628. WHERE Orders.ShippedDate IS NOT NULL
  629. --ORDER BY Orders.ShippedDate
  630. GO
  631. SET QUOTED_IDENTIFIER OFF
  632. GO
  633. SET QUOTED_IDENTIFIER ON
  634. GO
  635. print '------------------------------'
  636. print 'create views - finish'
  637. print '------------------------------'
  638. go
  639. print '------------------------------'
  640. print 'create procedures - start'
  641. print '------------------------------'
  642. go
  643. CREATE PROCEDURE CustOrderHist @CustomerID nchar(5)
  644. AS
  645. SELECT ProductName, Total=SUM(Quantity)
  646. FROM Products P, [Order Details] OD, Orders O, Customers C
  647. WHERE C.CustomerID = @CustomerID
  648. AND C.CustomerID = O.CustomerID AND O.OrderID = OD.OrderID AND OD.ProductID = P.ProductID
  649. GROUP BY ProductName
  650. GO
  651. SET QUOTED_IDENTIFIER OFF
  652. GO
  653. SET QUOTED_IDENTIFIER ON
  654. GO
  655. CREATE PROCEDURE CustOrdersDetail @OrderID int
  656. AS
  657. SELECT ProductName,
  658. UnitPrice=ROUND(Od.UnitPrice, 2),
  659. Quantity,
  660. Discount=CONVERT(int, Discount * 100),
  661. ExtendedPrice=ROUND(CONVERT(money, Quantity * (1 - Discount) * Od.UnitPrice), 2)
  662. FROM Products P, [Order Details] Od
  663. WHERE Od.ProductID = P.ProductID and Od.OrderID = @OrderID
  664. GO
  665. SET QUOTED_IDENTIFIER OFF
  666. GO
  667. SET QUOTED_IDENTIFIER ON
  668. GO
  669. CREATE PROCEDURE CustOrdersOrders @CustomerID nchar(5)
  670. AS
  671. SELECT OrderID,
  672. OrderDate,
  673. RequiredDate,
  674. ShippedDate
  675. FROM Orders
  676. WHERE CustomerID = @CustomerID
  677. ORDER BY OrderID
  678. GO
  679. SET QUOTED_IDENTIFIER OFF
  680. GO
  681. SET QUOTED_IDENTIFIER ON
  682. GO
  683. create procedure "Employee Sales by Country"
  684. @Beginning_Date DateTime, @Ending_Date DateTime AS
  685. SELECT Employees.Country, Employees.LastName, Employees.FirstName, Orders.ShippedDate, Orders.OrderID, "Order Subtotals".Subtotal AS SaleAmount
  686. FROM Employees INNER JOIN
  687. (Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID)
  688. ON Employees.EmployeeID = Orders.EmployeeID
  689. WHERE Orders.ShippedDate Between @Beginning_Date And @Ending_Date
  690. GO
  691. SET QUOTED_IDENTIFIER OFF
  692. GO
  693. SET QUOTED_IDENTIFIER ON
  694. GO
  695. CREATE PROCEDURE GH_CREATETABLE
  696. AS
  697. Begin
  698. Create Table #temp_tbl (
  699. Col1 int,
  700. Col2 int
  701. )
  702. --insert values to the table
  703. insert into #temp_tbl values (11,12)
  704. insert into #temp_tbl values (21,22)
  705. insert into #temp_tbl values (31,32)
  706. --execute select on the created table
  707. select Col1 as Value1, Col2 as Value2 from #temp_tbl
  708. end
  709. GO
  710. SET QUOTED_IDENTIFIER OFF
  711. GO
  712. SET QUOTED_IDENTIFIER ON
  713. GO
  714. CREATE PROCEDURE GH_MULTIRECORDSETS
  715. as BEGIN
  716. -- Declare cursor
  717. SELECT EmployeeID, LastName FROM Employees where EmployeeID in (1,2) order by EmployeeID asc
  718. SELECT CustomerID, CompanyName,ContactName FROM Customers where CustomerID in ('MORGK','NORTS') order by CustomerID asc
  719. -- return empty result set
  720. SELECT OrderID, ShipAddress,ShipVia, ShipCity FROM Orders where OrderID=-1
  721. END
  722. GO
  723. CREATE procedure GH_INOUT1
  724. @INPARAM varchar(20) ,
  725. @OUTPARAM int output
  726. AS
  727. declare @L_INPARAM varchar(30)
  728. select L_INPARAM = @INPARAM
  729. select @OUTPARAM = 100
  730. GO
  731. CREATE procedure GH_REFCURSOR1
  732. AS
  733. SELECT EmployeeID, LastName FROM Employees
  734. WHERE EmployeeID=1
  735. GO
  736. CREATE procedure GH_REFCURSOR2
  737. @IN_EMPLOYEEID int
  738. AS
  739. SELECT EmployeeID, LastName FROM Employees
  740. where EmployeeID = @IN_EMPLOYEEID
  741. GO
  742. CREATE procedure GH_REFCURSOR3
  743. @IN_LASTNAME varchar(20) AS
  744. SELECT EmployeeID, LastName FROM Employees
  745. where LastName = @IN_LASTNAME
  746. GO
  747. SET QUOTED_IDENTIFIER OFF
  748. GO
  749. SET QUOTED_IDENTIFIER ON
  750. GO
  751. create procedure "Sales by Year"
  752. @Beginning_Date DateTime, @Ending_Date DateTime AS
  753. SELECT Orders.ShippedDate, Orders.OrderID, "Order Subtotals".Subtotal, DATENAME(yy,ShippedDate) AS Year
  754. FROM Orders INNER JOIN "Order Subtotals" ON Orders.OrderID = "Order Subtotals".OrderID
  755. WHERE Orders.ShippedDate Between @Beginning_Date And @Ending_Date
  756. GO
  757. SET QUOTED_IDENTIFIER OFF
  758. GO
  759. SET QUOTED_IDENTIFIER ON
  760. GO
  761. CREATE PROCEDURE SalesByCategory
  762. @CategoryName nvarchar(15), @OrdYear nvarchar(4) = '1998'
  763. AS
  764. IF @OrdYear != '1996' AND @OrdYear != '1997' AND @OrdYear != '1998'
  765. BEGIN
  766. SELECT @OrdYear = '1998'
  767. END
  768. SELECT ProductName,
  769. TotalPurchase=ROUND(SUM(CONVERT(decimal(14,2), OD.Quantity * (1-OD.Discount) * OD.UnitPrice)), 0)
  770. FROM [Order Details] OD, Orders O, Products P, Categories C
  771. WHERE OD.OrderID = O.OrderID
  772. AND OD.ProductID = P.ProductID
  773. AND P.CategoryID = C.CategoryID
  774. AND C.CategoryName = @CategoryName
  775. AND SUBSTRING(CONVERT(nvarchar(22), O.OrderDate, 111), 1, 4) = @OrdYear
  776. GROUP BY ProductName
  777. ORDER BY ProductName
  778. GO
  779. SET QUOTED_IDENTIFIER OFF
  780. GO
  781. SET QUOTED_IDENTIFIER ON
  782. GO
  783. create procedure "Ten Most Expensive Products" AS
  784. SET ROWCOUNT 10
  785. SELECT Products.ProductName AS TenMostExpensiveProducts, Products.UnitPrice
  786. FROM Products
  787. ORDER BY Products.UnitPrice DESC
  788. GO
  789. SET QUOTED_IDENTIFIER OFF
  790. GO
  791. CREATE PROCEDURE GHSP_TYPES_SIMPLE_1
  792. @T_TINYINT tinyint,
  793. @T_SMALLINT smallint ,
  794. @T_INT int,
  795. @T_DECIMAL decimal(18, 0),
  796. @T_NUMERIC numeric(18, 0) ,
  797. @T_FLOAT float ,
  798. @T_REAL real ,
  799. @T_CHAR char (10),
  800. @T_NCHAR nchar (10),
  801. @T_VARCHAR varchar (50) ,
  802. @T_NVARCHAR nvarchar (50)
  803. AS
  804. SELECT @T_TINYINT as 'T_TINYINT', @T_SMALLINT as 'T_SMALLINT' , @T_INT as 'T_INT', @T_DECIMAL as 'T_DECIMAL',
  805. @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'
  806. GO
  807. SET QUOTED_IDENTIFIER OFF
  808. GO
  809. SET QUOTED_IDENTIFIER OFF
  810. GO
  811. CREATE PROCEDURE GHSP_TYPES_SIMPLE_2
  812. @T_TINYINT tinyint output,
  813. @T_SMALLINT smallint output,
  814. @T_INT int output,
  815. @T_DECIMAL decimal(18, 0) output,
  816. @T_NUMERIC numeric(18, 0) output,
  817. @T_FLOAT float output,
  818. @T_REAL real output,
  819. @T_CHAR char (10) output,
  820. @T_NCHAR nchar (10) output,
  821. @T_VARCHAR varchar (50) output,
  822. @T_NVARCHAR nvarchar (50) output
  823. AS
  824. SELECT @T_TINYINT = @T_TINYINT*2
  825. SELECT @T_SMALLINT = @T_SMALLINT*2
  826. SELECT @T_INT = @T_INT*2
  827. SELECT @T_DECIMAL = @T_DECIMAL*2
  828. SELECT @T_NUMERIC = @T_NUMERIC*2
  829. SELECT @T_FLOAT = @T_FLOAT*2
  830. SELECT @T_REAL = @T_REAL*2
  831. SELECT @T_CHAR = UPPER(@T_CHAR)
  832. SELECT @T_NCHAR =UPPER(@T_NCHAR)
  833. SELECT @T_VARCHAR = UPPER(@T_VARCHAR)
  834. SELECT @T_NVARCHAR = UPPER(@T_NVARCHAR)
  835. GO
  836. SET QUOTED_IDENTIFIER OFF
  837. GO
  838. SET QUOTED_IDENTIFIER OFF
  839. GO
  840. CREATE PROCEDURE GHSP_TYPES_SIMPLE_3
  841. @ID char,
  842. @T_TINYINT tinyint output,
  843. @T_SMALLINT smallint output,
  844. @T_INT int output,
  845. @T_DECIMAL decimal(18, 0) output,
  846. @T_NUMERIC numeric(18, 0) output,
  847. @T_FLOAT float output,
  848. @T_REAL real output,
  849. @T_CHAR char (10) output,
  850. @T_NCHAR nchar (10) output,
  851. @T_VARCHAR varchar (50) output,
  852. @T_NVARCHAR nvarchar (50) output
  853. AS
  854. SELECT @T_TINYINT = T_TINYINT, @T_SMALLINT = T_SMALLINT , @T_INT = T_INT, @T_DECIMAL = T_DECIMAL ,
  855. @T_NUMERIC = T_NUMERIC , @T_FLOAT = T_FLOAT , @T_REAL = T_REAL , @T_CHAR = T_CHAR, @T_NCHAR = T_NCHAR,
  856. @T_VARCHAR = T_VARCHAR, @T_NVARCHAR = T_NVARCHAR FROM TYPES_SIMPLE WHERE ID = @ID
  857. GO
  858. SET QUOTED_IDENTIFIER OFF
  859. GO
  860. SET QUOTED_IDENTIFIER OFF
  861. GO
  862. CREATE PROCEDURE GHSP_TYPES_SIMPLE_4
  863. @ID char
  864. AS
  865. /*Insert*/
  866. insert into TYPES_SIMPLE(ID,T_INT) values (@ID,50)
  867. SELECT * FROM TYPES_SIMPLE WHERE ID = @ID
  868. /*Update*/
  869. update TYPES_SIMPLE set T_INT=60 where ID = @ID
  870. SELECT * FROM TYPES_SIMPLE WHERE ID = @ID
  871. /*Delete*/
  872. delete from TYPES_SIMPLE WHERE ID = @ID
  873. SELECT * FROM TYPES_SIMPLE WHERE ID = @ID
  874. GO
  875. SET QUOTED_IDENTIFIER OFF
  876. GO
  877. SET QUOTED_IDENTIFIER OFF
  878. GO
  879. CREATE PROCEDURE GHSP_TYPES_SIMPLE_5
  880. AS
  881. DECLARE @T_TINYINT tinyint
  882. DECLARE @T_SMALLINT smallint
  883. DECLARE @T_INT int
  884. DECLARE @T_DECIMAL decimal(18,0)
  885. DECLARE @T_NUMERIC numeric(18,0)
  886. DECLARE @T_FLOAT float
  887. DECLARE @T_REAL real
  888. DECLARE @T_CHAR char(10)
  889. DECLARE @T_NCHAR nchar(10)
  890. DECLARE @T_VARCHAR varchar(50)
  891. DECLARE @T_NVARCHAR nvarchar(50)
  892. SELECT @T_TINYINT = 25
  893. SELECT @T_SMALLINT = 77
  894. SELECT @T_INT = 2525
  895. SELECT @T_DECIMAL = 10
  896. SELECT @T_NUMERIC = 123123
  897. SELECT @T_FLOAT = 17.1414257
  898. SELECT @T_REAL = 0.71425
  899. SELECT @T_CHAR = 'abcdefghij'
  900. SELECT @T_NCHAR = N'klmnopqrst'
  901. SELECT @T_VARCHAR = 'qwertasdfg'
  902. SELECT @T_NVARCHAR = N'qwertasdfg'
  903. SELECT @T_TINYINT as 'T_TINYINT', @T_SMALLINT as 'T_SMALLINT' , @T_INT as 'T_INT', @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'
  904. GO
  905. SET QUOTED_IDENTIFIER OFF
  906. GO
  907. if not exists (select * from master.dbo.syslogins where name = N'mainsoft')
  908. BEGIN
  909. declare @logindb nvarchar(132), @loginlang nvarchar(132) select @logindb = N'GHTDB', @loginlang = N'us_english'
  910. if @logindb is null or not exists (select * from master.dbo.sysdatabases where name = @logindb)
  911. select @logindb = N'master'
  912. if @loginlang is null or (not exists (select * from master.dbo.syslanguages where name = @loginlang) and @loginlang <> N'us_english')
  913. select @loginlang = @@language
  914. exec sp_addlogin N'mainsoft', 'mainsoft', @logindb, @loginlang
  915. END
  916. GO
  917. --exec sp_addsrvrolemember N'mainsoft', sysadmin
  918. exec sp_adduser mainsoft
  919. GO
  920. if not exists (select * from dbo.sysusers where name = N'mainsoft' and uid < 16382)
  921. EXEC sp_grantdbaccess N'mainsoft', N'mainsoft', 1
  922. GO
  923. SET QUOTED_IDENTIFIER ON
  924. GO
  925. CREATE TABLE [mainsoft].[CategoriesNew] (
  926. [CategoryID] numeric(5,0) IDENTITY NOT NULL ,
  927. [CategoryName] [nvarchar] (15) NOT NULL ,
  928. [Description] [nvarchar](1000) NULL ,
  929. [Picture] [image] NULL
  930. ) ON [default]
  931. GO
  932. CREATE TABLE [mainsoft].[Categories] (
  933. [CategoryID] [nvarchar] (15) NOT NULL ,
  934. [CategoryName] [nvarchar] (15) NOT NULL ,
  935. [Description] [nvarchar](1000) NULL ,
  936. [Picture] [int] NULL
  937. ) ON [default]
  938. GO
  939. CREATE procedure [mainsoft].[GH_DUMMY]
  940. @EmployeeIdPrm char (10)
  941. AS
  942. SELECT * FROM Employees where EmployeeID > CONVERT(int,@EmployeeIdPrm)
  943. GO
  944. SET QUOTED_IDENTIFIER OFF
  945. GO
  946. ------------------------------------------------------------------------------------------------------------------
  947. ------------------------------------------------------------------------------------------------------------------
  948. ------------------------------------------------------------------------------------------------------------------
  949. ------------------------------------------------------------------------------------------------------------------
  950. use master
  951. go
  952. IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'GHTDB_EX')
  953. DROP DATABASE [GHTDB_EX]
  954. GO
  955. if (@@maxpagesize = 1024 * 2)
  956. create database GHTDB_EX on default = 10
  957. else
  958. create database GHTDB_EX on default = 10
  959. go
  960. exec sp_dboption N'GHTDB_EX', N'trunc log on chkpt', true, 1
  961. exec sp_dboption N'GHTDB_EX', N'trunc. log', N'true', 1
  962. exec sp_dboption N'GHTDB_EX', N'read only', N'false', 1
  963. exec sp_dboption N'GHTDB_EX', N'dbo use', N'false', 1
  964. go
  965. use [GHTDB_EX]
  966. GO
  967. CREATE TABLE [dbo].[Customers] (
  968. [CustomerID] [char] (10) NOT NULL ,
  969. [CompanyName] [nvarchar] (40) NULL ,
  970. [ContactName] [nvarchar] (30) NULL ,
  971. [ContactTitle] [nvarchar] (30) NULL ,
  972. [Address] [nvarchar] (60) NULL ,
  973. [City] [nvarchar] (15) NULL ,
  974. [Region] [nvarchar] (15) NULL ,
  975. [PostalCode] [nvarchar] (10) NULL ,
  976. [Country] [nvarchar] (15) NULL ,
  977. [Phone] [nvarchar] (24) NULL ,
  978. [Fax] [nvarchar] (24) NULL
  979. ) ON [default]
  980. GO
  981. SET QUOTED_IDENTIFIER OFF
  982. GO
  983. print '------------------------------'
  984. print 'create another GH_DUMMY which select from a different table'
  985. print 'customers instead of employees'
  986. print '------------------------------'
  987. go
  988. CREATE procedure GH_DUMMY
  989. @CustomerIdPrm char (10)
  990. AS
  991. SELECT * FROM Customers where CustomerID=CONVERT(char,@CustomerIdPrm)
  992. GO
  993. SET QUOTED_IDENTIFIER OFF
  994. GO