MSSQLBuildDatabase.sql 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES t WHERE t.TABLE_SCHEMA = 'dbo' AND t.TABLE_NAME = 'OrderLines')
  2. DROP TABLE dbo.[OrderLines]
  3. IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES t WHERE t.TABLE_SCHEMA = 'dbo' AND t.TABLE_NAME = 'Orders')
  4. DROP TABLE dbo.[Orders]
  5. IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES t WHERE t.TABLE_SCHEMA = 'dbo' AND t.TABLE_NAME = 'People')
  6. DROP TABLE dbo.[People]
  7. IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES t WHERE t.TABLE_SCHEMA = 'dbo' AND t.TABLE_NAME = 'SpecificOrderLines')
  8. DROP TABLE dbo.[SpecificOrderLines]
  9. IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES t WHERE t.TABLE_SCHEMA = 'dbo' AND t.TABLE_NAME = 'SpecificOrders')
  10. DROP TABLE dbo.[SpecificOrders]
  11. IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES t WHERE t.TABLE_SCHEMA = 'dbo' AND t.TABLE_NAME = 'SpecificPeople')
  12. DROP TABLE dbo.[SpecificPeople]
  13. IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES t WHERE t.TABLE_SCHEMA = 'dbo' AND t.TABLE_NAME = 'TransactionLogs')
  14. DROP TABLE dbo.[TransactionLogs]
  15. IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES t WHERE t.TABLE_SCHEMA = 'dbo' AND t.TABLE_NAME = 'Note')
  16. DROP TABLE dbo.[Note]
  17. CREATE TABLE dbo.[People] (
  18. [Id] UNIQUEIDENTIFIER NOT NULL PRIMARY KEY,
  19. [FullName] NVARCHAR(255),
  20. [Age] BIGINT NOT NULL,
  21. [Height] INT NOT NULL,
  22. [Dob] DATETIME2 NULL
  23. )
  24. CREATE TABLE dbo.[Orders] (
  25. [Id] INT IDENTITY(1,1) PRIMARY KEY,
  26. [PersonId] UNIQUEIDENTIFIER FOREIGN KEY REFERENCES dbo.[People](Id),
  27. [PoNumber] NVARCHAR(15) NOT NULL,
  28. [OrderStatus] INT NOT NULL,
  29. [CreatedOn] DATETIME2 NOT NULL,
  30. [CreatedBy] NVARCHAR(255) NOT NULL
  31. )
  32. CREATE TABLE dbo.[OrderLines] (
  33. [Id] INT IDENTITY(1,1) PRIMARY KEY,
  34. [OrderId] INT NOT NULL FOREIGN KEY REFERENCES dbo.[Orders](Id),
  35. [Qty] SMALLINT NOT NULL,
  36. [Status] TINYINT NOT NULL,
  37. [SellPrice] NUMERIC(10, 4) NOT NULL
  38. )
  39. CREATE TABLE dbo.[SpecificPeople] (
  40. [Id] UNIQUEIDENTIFIER NOT NULL PRIMARY KEY,
  41. [FullName] NVARCHAR(255),
  42. [Age] BIGINT NOT NULL,
  43. [Height] INT NOT NULL,
  44. [Dob] DATETIME2 NULL
  45. )
  46. CREATE TABLE dbo.[SpecificOrders] (
  47. [Id] INT IDENTITY(1,1) PRIMARY KEY,
  48. [PersonId] UNIQUEIDENTIFIER FOREIGN KEY REFERENCES dbo.[SpecificPeople](Id),
  49. [PoNumber] NVARCHAR(15) NOT NULL,
  50. [OrderStatus] INT NOT NULL,
  51. [CreatedOn] DATETIME2 NOT NULL,
  52. [CreatedBy] NVARCHAR(255) NOT NULL
  53. )
  54. CREATE TABLE dbo.[SpecificOrderLines] (
  55. [Id] INT IDENTITY(1,1) PRIMARY KEY,
  56. [OrderId] INT NOT NULL FOREIGN KEY REFERENCES dbo.[SpecificOrders](Id),
  57. [Qty] SMALLINT NOT NULL,
  58. [Status] TINYINT NOT NULL,
  59. [SellPrice] NUMERIC(10, 4) NOT NULL
  60. )
  61. CREATE TABLE dbo.[TransactionLogs] (
  62. [Description] NTEXT,
  63. [CreatedOn] DATETIME2 NOT NULL
  64. )
  65. CREATE TABLE dbo.[Note] (
  66. [Id] INT IDENTITY(1,1) PRIMARY KEY,
  67. [Text] NTEXT NOT NULL,
  68. [CreatedOn] DATETIME2 NOT NULL
  69. )
  70. IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'store')
  71. BEGIN
  72. EXEC('CREATE SCHEMA store')
  73. END
  74. IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES t WHERE t.TABLE_SCHEMA = 'store' AND t.TABLE_NAME = 'People')
  75. DROP TABLE [store].[People]
  76. CREATE TABLE [store].[People] (
  77. [Id] UNIQUEIDENTIFIER NOT NULL PRIMARY KEY,
  78. [FullName] NVARCHAR(255),
  79. [Age] BIGINT NOT NULL
  80. )
  81. -- Investigation Tables
  82. IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES t WHERE t.TABLE_SCHEMA = 'dbo' AND t.TABLE_NAME = 'BugInvestigation_10R9LZYK')
  83. DROP TABLE dbo.[BugInvestigation_10R9LZYK]
  84. CREATE TABLE dbo.[BugInvestigation_10R9LZYK] (
  85. [Id] INT IDENTITY(1,1) PRIMARY KEY,
  86. [TestColumn1] VARBINARY(32)
  87. )
  88. IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES t WHERE t.TABLE_SCHEMA = 'dbo' AND t.TABLE_NAME = 'BugInvestigation_64O6LT8U')
  89. DROP TABLE dbo.[BugInvestigation_64O6LT8U]
  90. CREATE TABLE dbo.[BugInvestigation_64O6LT8U] (
  91. [ColumnA] VARCHAR(20),
  92. [Column2] VARCHAR(20),
  93. )
  94. IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES t WHERE t.TABLE_SCHEMA = 'dbo' AND t.TABLE_NAME = 'BugInvestigation_5TN5C4U4')
  95. DROP TABLE dbo.[BugInvestigation_5TN5C4U4]
  96. CREATE TABLE dbo.[BugInvestigation_5TN5C4U4] (
  97. [ColumnA] VARCHAR(20),
  98. [Column2] VARCHAR(20),
  99. )
  100. GO
  101. -- Stored procedures
  102. IF EXISTS (SELECT * FROM sys.objects o WHERE o.type = 'P' AND o.NAME = 'SelectPeople')
  103. DROP PROCEDURE SelectPeople
  104. IF EXISTS (SELECT * FROM sys.objects o WHERE o.type = 'P' AND o.NAME = 'SelectPeopleWithParam')
  105. DROP PROCEDURE SelectPeopleWithParam
  106. IF EXISTS (SELECT * FROM sys.objects o WHERE o.type = 'P' AND o.NAME = 'CountPeople')
  107. DROP PROCEDURE CountPeople
  108. IF EXISTS (SELECT * FROM sys.objects o WHERE o.type = 'P' AND o.NAME = 'CountPeopleWithParam')
  109. DROP PROCEDURE CountPeopleWithParam
  110. IF EXISTS (SELECT * FROM sys.objects o WHERE o.type = 'P' AND o.NAME = 'UpdatePeople')
  111. DROP PROCEDURE UpdatePeople
  112. IF EXISTS (SELECT * FROM sys.objects o WHERE o.type = 'P' AND o.NAME = 'UpdatePeopleWithParam')
  113. DROP PROCEDURE UpdatePeopleWithParam
  114. GO
  115. CREATE PROCEDURE dbo.SelectPeople
  116. AS
  117. BEGIN
  118. SET NOCOUNT ON;
  119. SELECT * FROM [People]
  120. END
  121. GO
  122. CREATE PROCEDURE dbo.SelectPeopleWithParam
  123. @@age int = 0
  124. AS
  125. BEGIN
  126. SET NOCOUNT ON;
  127. SELECT * FROM [People] WHERE Age > @@age
  128. END
  129. GO
  130. CREATE PROCEDURE dbo.CountPeople
  131. AS
  132. BEGIN
  133. SET NOCOUNT ON;
  134. SELECT COUNT(*) FROM [People]
  135. END
  136. GO
  137. CREATE PROCEDURE dbo.CountPeopleWithParam
  138. @@age int = 0
  139. AS
  140. BEGIN
  141. SET NOCOUNT ON;
  142. SELECT COUNT(*) FROM [People] WHERE Age > @@age
  143. END
  144. GO
  145. CREATE PROCEDURE dbo.UpdatePeople
  146. AS
  147. BEGIN
  148. SET NOCOUNT ON;
  149. UPDATE [People] SET [FullName] = 'Updated'
  150. END
  151. GO
  152. CREATE PROCEDURE dbo.UpdatePeopleWithParam
  153. @@age int = 0
  154. AS
  155. BEGIN
  156. SET NOCOUNT ON;
  157. UPDATE [People] SET [FullName] = 'Updated' WHERE Age > @@age
  158. END
  159. GO