16
16
17
17
CREATE DATABASE [@databaseName]
18
18
CONTAINMENT = NONE
19
- ON PRIMARY
19
+ ON PRIMARY
20
20
(NAME = N'' @databaseName'' , FILENAME = N'' @databaseFilePath@databaseName.mdf'' , SIZE = 64MB, MAXSIZE = UNLIMITED, FILEGROWTH = 64MB),
21
21
FILEGROUP [___DATABASE_NAME___] CONTAINS MEMORY_OPTIMIZED_DATA DEFAULT
22
22
( NAME = N'' @databaseName_mod'' , FILENAME = N'' @databaseFilePath@databaseName_mod'' , MAXSIZE = UNLIMITED)
23
- LOG ON
23
+ LOG ON
24
24
( NAME = N'' @databaseName_log'' , FILENAME = N'' @databaseFilePath@databaseName_log.ldf'' , SIZE = 64MB, MAXSIZE = 2048MB, FILEGROWTH = 64MB);
25
25
26
26
ALTER DATABASE [@databaseName] SET COMPATIBILITY_LEVEL = 120;
27
+ ' ;
28
+
29
+ SET @tsqlStatement = REPLACE (@tsqlStatement, ' @databaseName' , @databaseName);
30
+ SET @tsqlStatement = REPLACE (@tsqlStatement, ' @databaseFilePath' , @databaseFilePath);
27
31
32
+ IF @debug = 1 PRINT (@tsqlStatement)
33
+ ELSE
34
+ EXEC sp_executesql @tsqlStatement;
35
+
36
+
37
+ SET @tsqlStatement = '
28
38
USE [@databaseName];
39
+ --UNCOMMENT GO Statement if you want to execute statements after printing in debug mode!!!
40
+ --GO
29
41
30
42
-- configure recommended DB option
31
43
ALTER DATABASE CURRENT SET MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT=ON;
@@ -38,24 +50,23 @@ CREATE TABLE dbo.table1(
38
50
WITH (MEMORY_OPTIMIZED=ON);
39
51
40
52
-- non-durable table
41
- CREATE TABLE dbo.temp_table1
42
- ( c1 INT IDENTITY PRIMARY KEY NONCLUSTERED,
43
- c2 NVARCHAR(4000) )
44
- WITH (MEMORY_OPTIMIZED=ON,
45
- DURABILITY=SCHEMA_ONLY);
53
+ CREATE TABLE dbo.temp_table1(
54
+ c1 INT IDENTITY PRIMARY KEY NONCLUSTERED,
55
+ c2 NVARCHAR(4000)
56
+ )
57
+ WITH (MEMORY_OPTIMIZED=ON, DURABILITY=SCHEMA_ONLY);
46
58
47
59
-- memory-optimized table type
48
- CREATE TYPE dbo.tt_table1 AS TABLE
49
- ( c1 INT IDENTITY,
50
- c2 NVARCHAR(4000),
51
- is_transient BIT NOT NULL DEFAULT (0),
52
- INDEX ix_c1 HASH (c1) WITH (BUCKET_COUNT=1024))
53
- WITH (MEMORY_OPTIMIZED=ON);
54
-
55
- CREATE TABLE dbo.InMemTable1
56
- (
57
- keyColumn INT IDENTITY PRIMARY KEY NONCLUSTERED
58
- ,description CHAR(100) NOT NULL
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
+ keyColumn INT IDENTITY PRIMARY KEY NONCLUSTERED
69
+ , description CHAR(100) NOT NULL
59
70
)
60
71
WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA);
61
72
@@ -69,15 +80,14 @@ VALUES
69
80
,(REPLICATE('' F'' , 100));
70
81
' ;
71
82
72
- SET @tsqlStatement = REPLACE (@tsqlStatement, ' @databaseName' , @databaseName);
73
- SET @tsqlStatement = REPLACE (@tsqlStatement, ' @databaseFilePath' , @databaseFilePath);
83
+ SET @tsqlStatement = REPLACE (@tsqlStatement, ' @databaseName' , @databaseName);
74
84
75
85
IF @debug = 1 PRINT (@tsqlStatement)
76
86
ELSE
77
87
EXEC sp_executesql @tsqlStatement;
78
88
79
89
80
- -- https://stackoverflow.com/a/793362/2298061
90
+ -- https://stackoverflow.com/a/793362/2298061
81
91
DECLARE @UseAndExecStatment NVARCHAR (4000 );
82
92
SET @UseAndExecStatment = N ' USE [' + @databaseName + N ' ]; EXEC sp_executesql @tsqlStatement' ;
83
93
@@ -92,5 +102,9 @@ BEGIN ATOMIC WITH (TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N''us_engl
92
102
END;
93
103
--EXECUTE dbo.native_sp;' ;
94
104
105
+ IF @debug = 1 PRINT (@tsqlStatement)
106
+ ELSE
107
+ BEGIN
95
108
EXEC sp_executesql @UseAndExecStatment,
96
- N ' @tsqlStatement NVARCHAR(MAX)' , @tsqlStatement = @tsqlStatement
109
+ N ' @tsqlStatement NVARCHAR(MAX)' , @tsqlStatement = @tsqlStatement;
110
+ END ;
0 commit comments