Advertisement
seregak

SQLUGChallenge2015 Test Database

Dec 10th, 2015
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 4.88 KB | None | 0 0
  1. SET NOEXEC Off
  2. GO
  3.  
  4. USE [master]
  5. GO
  6.  
  7. IF DB_ID('u5') IS NOT NULL BEGIN
  8.     ALTER DATABASE [u5] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
  9.     DROP DATABASE [u5]
  10. END
  11. GO
  12.  
  13.  
  14. /* Comment this line for restore only
  15.  
  16. RESTORE DATABASE u5 FROM DISK =N'C:\temp\u5_full.bak' WITH FILE = 1 ,STATS = 5
  17. GO
  18.  
  19. USE u5
  20. GO
  21.  
  22.  
  23. IF (
  24.         SELECT
  25.             is_broker_enabled
  26.         FROM sys.databases
  27.         WHERE name = DB_NAME()
  28.     )
  29.     = 0
  30. BEGIN
  31.     ALTER DATABASE CURRENT SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
  32.     ALTER DATABASE CURRENT SET ENABLE_BROKER;
  33.     ALTER DATABASE CURRENT SET MULTI_USER;
  34. END
  35. GO
  36.  
  37. --DECLARE @a CHAR(1) SELECT @a = ch.[Status] FROM dbo.CardHistory AS ch
  38.  
  39. SET NOEXEC ON
  40. GO
  41.  
  42.  
  43. --*/
  44. USE [master]
  45. GO
  46.  
  47. CREATE DATABASE [u5]
  48.  CONTAINMENT = NONE
  49.  ON  PRIMARY
  50. ( NAME = N'u5', FILENAME = N'C:\DATA\u5.mdf' , SIZE = 1GB , MAXSIZE = UNLIMITED, FILEGROWTH = 200MB),
  51.  FILEGROUP [MemoryOptimized] CONTAINS MEMORY_OPTIMIZED_DATA  DEFAULT
  52. ( NAME = N'u5_mem', FILENAME = N'C:\DATA\u5_mem' , MAXSIZE = UNLIMITED)
  53.  LOG ON
  54. ( NAME = N'u5_log', FILENAME = N'C:\DATA\u5_log.ldf' , SIZE = 500MB , MAXSIZE = 2048GB , FILEGROWTH = 100MB)
  55.  COLLATE Finnish_Swedish_100_BIN2
  56. GO
  57. ALTER DATABASE [u5] SET COMPATIBILITY_LEVEL = 120 -- 130 works too
  58. GO
  59. ALTER DATABASE [u5] SET ANSI_NULL_DEFAULT OFF
  60. GO
  61. ALTER DATABASE [u5] SET ANSI_NULLS OFF
  62. GO
  63. ALTER DATABASE [u5] SET ANSI_PADDING OFF
  64. GO
  65. ALTER DATABASE [u5] SET ANSI_WARNINGS OFF
  66. GO
  67. ALTER DATABASE [u5] SET ARITHABORT OFF
  68. GO
  69. ALTER DATABASE [u5] SET AUTO_CLOSE OFF
  70. GO
  71. ALTER DATABASE [u5] SET AUTO_SHRINK OFF
  72. GO
  73. ALTER DATABASE [u5] SET AUTO_CREATE_STATISTICS ON
  74. GO
  75. ALTER DATABASE [u5] SET AUTO_UPDATE_STATISTICS ON
  76. GO
  77. ALTER DATABASE [u5] SET CURSOR_CLOSE_ON_COMMIT OFF
  78. GO
  79. ALTER DATABASE [u5] SET CURSOR_DEFAULT  GLOBAL
  80. GO
  81. ALTER DATABASE [u5] SET CONCAT_NULL_YIELDS_NULL OFF
  82. GO
  83. ALTER DATABASE [u5] SET NUMERIC_ROUNDABORT OFF
  84. GO
  85. ALTER DATABASE [u5] SET QUOTED_IDENTIFIER OFF
  86. GO
  87. ALTER DATABASE [u5] SET RECURSIVE_TRIGGERS OFF
  88. GO
  89. ALTER DATABASE [u5] SET ENABLE_BROKER;
  90. GO
  91. ALTER DATABASE [u5] SET AUTO_UPDATE_STATISTICS_ASYNC OFF
  92. GO
  93. ALTER DATABASE [u5] SET DATE_CORRELATION_OPTIMIZATION OFF
  94. GO
  95. ALTER DATABASE [u5] SET PARAMETERIZATION SIMPLE
  96. GO
  97. ALTER DATABASE [u5] SET READ_COMMITTED_SNAPSHOT OFF
  98. GO
  99. ALTER DATABASE [u5] SET  READ_WRITE
  100. GO
  101. ALTER DATABASE [u5] SET RECOVERY SIMPLE
  102. GO
  103. ALTER DATABASE [u5] SET  MULTI_USER
  104. GO
  105. ALTER DATABASE [u5] SET PAGE_VERIFY CHECKSUM  
  106. GO
  107. ALTER DATABASE [u5] SET TARGET_RECOVERY_TIME = 0 SECONDS
  108. GO
  109. ALTER DATABASE [u5] SET DELAYED_DURABILITY = ALLOWED
  110. GO
  111. USE [u5]
  112. GO
  113. IF NOT EXISTS (SELECT name FROM sys.filegroups WHERE is_default=1 AND name = N'PRIMARY') ALTER DATABASE [u5] MODIFY FILEGROUP [PRIMARY] DEFAULT
  114. GO
  115.  
  116.  
  117. ALTER AUTHORIZATION ON DATABASE::u5 TO sa;
  118.  
  119.  
  120.  
  121. USE u5
  122. GO
  123.  
  124.  
  125. -- Tillåt delayed durability
  126. ALTER DATABASE u5 SET DELAYED_DURABILITY = ALLOWED WITH NO_WAIT
  127. GO 
  128. -- Förebygg vissa problem med transaction isolation levels
  129. ALTER DATABASE u5 SET MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = ON
  130. GO
  131.  
  132.  
  133. -- Prevent unwanted resultsets back to client
  134. SET NOCOUNT ON;
  135.  
  136. -- Drop dbo.CardHistory table if aready present
  137. IF OBJECT_ID('dbo.CardHistory', 'U') IS NOT NULL
  138.     DROP TABLE  dbo.CardHistory;
  139. GO
  140.  
  141. -- Create dbo.CardHistory table
  142. CREATE TABLE    dbo.CardHistory
  143.         (
  144.             CardID INT IDENTITY(1, 1),
  145.             CONSTRAINT PK_CardHistory PRIMARY KEY CLUSTERED
  146.             (
  147.                 CardID
  148.             ),
  149.             [Rank] TINYINT NOT NULL,
  150.             Suit CHAR(1) NOT NULL,
  151.             [STATUS] CHAR(1) NOT NULL
  152.         );
  153.  
  154. -- Drop dbo.DealerStatus table if aready present
  155. IF OBJECT_ID('dbo.DealerStatus', 'U') IS NOT NULL
  156.     DROP TABLE  dbo.DealerStatus;
  157. GO
  158.  
  159. -- Create dbo.DealerStatus table
  160. CREATE TABLE    dbo.DealerStatus
  161.         (
  162.             [STATUS] CHAR(1) NOT NULL,
  163.             CONSTRAINT PK_DealerStatus PRIMARY KEY CLUSTERED
  164.             (
  165.                 [STATUS]
  166.             ),
  167.             Deals INT NOT NULL
  168.         );
  169.  
  170. -- Prepare iteration of 2500 shuffles of 8 decks.
  171. DECLARE @Shuffle SMALLINT = 1;
  172.  
  173. CREATE TABLE    #Values
  174.         (
  175.             VALUE TINYINT PRIMARY KEY CLUSTERED
  176.         );
  177.  
  178. INSERT  #Values
  179.     (
  180.         VALUE
  181.     )
  182. VALUES  (1),
  183.     (2),
  184.     (3),
  185.     (4),
  186.     (5),
  187.     (6),
  188.     (7),
  189.     (8),
  190.     (9),
  191.     (10),
  192.     (11),
  193.     (12),
  194.     (13);
  195.  
  196. -- Iterate
  197. WHILE @Shuffle <= 2500
  198.     BEGIN
  199.         -- Populate dbo.CardHistory table
  200.         INSERT      dbo.CardHistory
  201.                 (
  202.                     [Rank],
  203.                     Suit,
  204.                     [STATUS]
  205.                 )
  206.         SELECT      r.VALUE AS [Rank],
  207.                 CASE s.VALUE
  208.                     WHEN 1 THEN 'H'
  209.                     WHEN 2 THEN 'S'
  210.                     WHEN 3 THEN 'D'
  211.                     ELSE 'C'
  212.                 END AS Suit,
  213.                 ' ' AS [STATUS]
  214.         FROM        #Values AS r                -- Rank
  215.         INNER JOIN  #Values AS s ON s.VALUE BETWEEN 1 AND 4 -- Suit
  216.         INNER JOIN  #Values AS d ON d.VALUE BETWEEN 1 AND 8 -- Deck
  217.         ORDER BY    NEWID();
  218.  
  219.         -- Next shuffle
  220.         SET @Shuffle += 1;
  221.     END;
  222.  
  223. -- Clean up
  224. DROP TABLE  #Values;
  225. GO
  226.  
  227.  
  228.  
  229.  
  230.  
  231. /*
  232. USE master
  233. GO
  234.  
  235. BACKUP DATABASE [u5] TO  DISK = N'C:\temp\u5_full.bak' WITH NOFORMAT, INIT,
  236. NAME = N'u5-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
  237. GO
  238.  
  239. --*/
  240.  
  241. SET NOEXEC Off
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement