Skip to content

Commit 72cd2d5

Browse files
committed
Add some dynamic sql for configure database name and path
1 parent b03a384 commit 72cd2d5

File tree

1 file changed

+85
-67
lines changed

1 file changed

+85
-67
lines changed

Scripts/IN_Memory_Example_2014.sql

Lines changed: 85 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -2,76 +2,94 @@
22
USE master;
33
GO
44

5-
IF DB_ID(N'ಠ ಠ 14 Test') IS NOT NULL DROP DATABASE [ಠ ಠ 14 Test];
6-
GO
5+
DECLARE @databaseFilePath NVARCHAR(1000) = N'k:\MSSQL\MSSQL14.MSSQLSERVER\MSSQL\DATA\'--N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\';
6+
DECLARE @databaseName SYSNAME = N'ಠ ಠ 14 Test';
7+
DECLARE @tsqlStatement NVARCHAR(4000) = N'';
8+
DECLARE @debug BIT = 0;
9+
10+
SET @tsqlStatement = '
11+
IF DB_ID(N''@databaseName'') IS NOT NULL
12+
BEGIN
13+
ALTER DATABASE [@databaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
14+
DROP DATABASE [@databaseName];
15+
END;
716
8-
CREATE DATABASE [ಠ ಠ 14 Test]
17+
CREATE DATABASE [@databaseName]
918
CONTAINMENT = NONE
10-
ON PRIMARY
11-
( NAME = N'ಠ ಠ', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\ಠ ಠ 14 Test.mdf', SIZE = 64MB, MAXSIZE = UNLIMITED, FILEGROWTH = 64MB),
12-
FILEGROUP [ಠ ಠ] CONTAINS MEMORY_OPTIMIZED_DATA DEFAULT
13-
( NAME = N'TESTDB_mod', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\ಠ ಠ 14 Test_mod', MAXSIZE = UNLIMITED)
19+
ON PRIMARY
20+
(NAME = N''@databaseName'', FILENAME = N''@databaseFilePath@databaseName.mdf'', SIZE = 64MB, MAXSIZE = UNLIMITED, FILEGROWTH = 64MB),
21+
FILEGROUP [___DATABASE_NAME___] CONTAINS MEMORY_OPTIMIZED_DATA DEFAULT
22+
( NAME = N''@databaseName_mod'', FILENAME = N''@databaseFilePath@databaseName_mod'', MAXSIZE = UNLIMITED)
1423
LOG ON
15-
( NAME = N'TESTDB_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\ಠ ಠ 14 Test_log.ldf', SIZE = 64MB, MAXSIZE = 2048MB, FILEGROWTH = 64MB)
16-
GO
24+
( NAME = N''@databaseName_log'', FILENAME = N''@databaseFilePath@databaseName_log.ldf'', SIZE = 64MB, MAXSIZE = 2048MB, FILEGROWTH = 64MB);
1725
18-
ALTER DATABASE [ಠ ಠ 14 Test] SET COMPATIBILITY_LEVEL = 120;
19-
GO
26+
ALTER DATABASE [@databaseName] SET COMPATIBILITY_LEVEL = 120;
27+
';
2028

21-
USE [ಠ ಠ 14 Test];
22-
GO
23-
-- configure recommended DB option
24-
ALTER DATABASE CURRENT SET MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT=ON
25-
GO
26-
-- memory-optimized table
27-
CREATE TABLE dbo.table1
28-
( c1 INT IDENTITY PRIMARY KEY NONCLUSTERED,
29-
c2 NVARCHAR(4000))
30-
WITH (MEMORY_OPTIMIZED=ON)
31-
GO
32-
-- non-durable table
33-
CREATE TABLE dbo.temp_table1
34-
( c1 INT IDENTITY PRIMARY KEY NONCLUSTERED,
35-
c2 NVARCHAR(4000))
36-
WITH (MEMORY_OPTIMIZED=ON,
37-
DURABILITY=SCHEMA_ONLY)
38-
GO
39-
-- memory-optimized table type
40-
CREATE TYPE dbo.tt_table1 AS TABLE
41-
( c1 INT IDENTITY,
42-
c2 NVARCHAR(4000),
43-
is_transient BIT NOT NULL DEFAULT (0),
44-
INDEX ix_c1 HASH (c1) WITH (BUCKET_COUNT=1024))
45-
WITH (MEMORY_OPTIMIZED=ON)
46-
GO
47-
48-
CREATE TABLE dbo.InMemTable1
49-
(
50-
keyColumn INT IDENTITY PRIMARY KEY NONCLUSTERED
51-
,description CHAR(100) NOT NULL
52-
)
53-
WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA)
54-
55-
INSERT dbo.InMemTable1
56-
(
57-
description
58-
)
59-
VALUES
60-
(REPLICATE('A', 100))
61-
,(REPLICATE('B', 100))
62-
,(REPLICATE('C', 100))
63-
,(REPLICATE('D', 100))
64-
,(REPLICATE('E', 100))
65-
,(REPLICATE('F', 100))
66-
GO
29+
SET @tsqlStatement = REPLACE(@tsqlStatement, '@databaseName', @databaseName);
30+
SET @tsqlStatement = REPLACE(@tsqlStatement, '@databaseFilePath', @databaseFilePath);
6731

68-
CREATE OR ALTER PROCEDURE dbo.native_sp
69-
WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER
70-
AS
71-
BEGIN ATOMIC WITH (TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'us_english')
72-
SELECT keyColumn
73-
,description
74-
FROM dbo.InMemTable1;
75-
END;
76-
GO
77-
EXECUTE dbo.native_sp;
32+
IF @debug = 1 PRINT(@tsqlStatement)
33+
ELSE
34+
EXEC sp_executesql @tsqlStatement;
35+
36+
37+
IF @debug = 0
38+
BEGIN
39+
40+
USE [ಠ ಠ 14 Test];
41+
42+
-- configure recommended DB option
43+
ALTER DATABASE CURRENT SET MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT=ON;
44+
45+
-- memory-optimized table
46+
CREATE TABLE dbo.table1(
47+
c1 INT IDENTITY PRIMARY KEY NONCLUSTERED,
48+
c2 NVARCHAR(4000)
49+
)
50+
WITH (MEMORY_OPTIMIZED=ON);
51+
52+
-- non-durable table
53+
CREATE TABLE dbo.temp_table1
54+
( c1 INT IDENTITY PRIMARY KEY NONCLUSTERED,
55+
c2 NVARCHAR(4000))
56+
WITH (MEMORY_OPTIMIZED=ON,
57+
DURABILITY=SCHEMA_ONLY);
58+
59+
-- memory-optimized table type
60+
CREATE TYPE dbo.tt_table1 AS TABLE
61+
( c1 INT IDENTITY,
62+
c2 NVARCHAR(4000),
63+
is_transient BIT NOT NULL DEFAULT (0),
64+
INDEX ix_c1 HASH (c1) WITH (BUCKET_COUNT=1024))
65+
WITH (MEMORY_OPTIMIZED=ON);
66+
67+
CREATE TABLE dbo.InMemTable1
68+
(
69+
keyColumn INT IDENTITY PRIMARY KEY NONCLUSTERED
70+
,description CHAR(100) NOT NULL
71+
)
72+
WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA);
73+
74+
INSERT dbo.InMemTable1(description)
75+
VALUES
76+
(REPLICATE('A', 100))
77+
,(REPLICATE('B', 100))
78+
,(REPLICATE('C', 100))
79+
,(REPLICATE('D', 100))
80+
,(REPLICATE('E', 100))
81+
,(REPLICATE('F', 100));
82+
83+
SET @tsqlStatement = '
84+
CREATE PROCEDURE dbo.native_sp
85+
WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER
86+
AS
87+
BEGIN ATOMIC WITH (TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N''us_english'')
88+
SELECT keyColumn
89+
, description
90+
FROM dbo.InMemTable1;
91+
END;';
92+
EXEC sp_executesql @tsqlStatement;
93+
94+
EXECUTE dbo.native_sp;
95+
END

0 commit comments

Comments
 (0)