1616
1717CREATE DATABASE [@databaseName]
1818 CONTAINMENT = NONE
19- ON PRIMARY
19+ ON PRIMARY
2020(NAME = N'' @databaseName'' , FILENAME = N'' @databaseFilePath@databaseName.mdf'' , SIZE = 64MB, MAXSIZE = UNLIMITED, FILEGROWTH = 64MB),
2121FILEGROUP [___DATABASE_NAME___] CONTAINS MEMORY_OPTIMIZED_DATA DEFAULT
2222( NAME = N'' @databaseName_mod'' , FILENAME = N'' @databaseFilePath@databaseName_mod'' , MAXSIZE = UNLIMITED)
23- LOG ON
23+ LOG ON
2424( NAME = N'' @databaseName_log'' , FILENAME = N'' @databaseFilePath@databaseName_log.ldf'' , SIZE = 64MB, MAXSIZE = 2048MB, FILEGROWTH = 64MB);
2525
2626ALTER DATABASE [@databaseName] SET COMPATIBILITY_LEVEL = 120;
27+ ' ;
28+
29+ SET @tsqlStatement = REPLACE (@tsqlStatement, ' @databaseName' , @databaseName);
30+ SET @tsqlStatement = REPLACE (@tsqlStatement, ' @databaseFilePath' , @databaseFilePath);
2731
32+ IF @debug = 1 PRINT (@tsqlStatement)
33+ ELSE
34+ EXEC sp_executesql @tsqlStatement;
35+
36+
37+ SET @tsqlStatement = '
2838USE [@databaseName];
39+ --UNCOMMENT GO Statement if you want to execute statements after printing in debug mode!!!
40+ --GO
2941
3042-- configure recommended DB option
3143ALTER DATABASE CURRENT SET MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT=ON;
@@ -38,24 +50,23 @@ CREATE TABLE dbo.table1(
3850WITH (MEMORY_OPTIMIZED=ON);
3951
4052-- 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);
4658
4759 -- 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
5970)
6071WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA);
6172
@@ -69,15 +80,14 @@ VALUES
6980,(REPLICATE('' F'' , 100));
7081' ;
7182
72- SET @tsqlStatement = REPLACE (@tsqlStatement, ' @databaseName' , @databaseName);
73- SET @tsqlStatement = REPLACE (@tsqlStatement, ' @databaseFilePath' , @databaseFilePath);
83+ SET @tsqlStatement = REPLACE (@tsqlStatement, ' @databaseName' , @databaseName);
7484
7585IF @debug = 1 PRINT (@tsqlStatement)
7686ELSE
7787EXEC sp_executesql @tsqlStatement;
7888
7989
80- -- https://stackoverflow.com/a/793362/2298061
90+ -- https://stackoverflow.com/a/793362/2298061
8191DECLARE @UseAndExecStatment NVARCHAR (4000 );
8292SET @UseAndExecStatment = N ' USE [' + @databaseName + N ' ]; EXEC sp_executesql @tsqlStatement' ;
8393
@@ -92,5 +102,9 @@ BEGIN ATOMIC WITH (TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N''us_engl
92102END;
93103--EXECUTE dbo.native_sp;' ;
94104
105+ IF @debug = 1 PRINT (@tsqlStatement)
106+ ELSE
107+ BEGIN
95108EXEC sp_executesql @UseAndExecStatment,
96- N ' @tsqlStatement NVARCHAR(MAX)' , @tsqlStatement = @tsqlStatement
109+ N ' @tsqlStatement NVARCHAR(MAX)' , @tsqlStatement = @tsqlStatement;
110+ END ;
0 commit comments