-
Notifications
You must be signed in to change notification settings - Fork 949
Expand file tree
/
Copy pathcreate.sql
More file actions
175 lines (152 loc) · 4.98 KB
/
Copy pathcreate.sql
File metadata and controls
175 lines (152 loc) · 4.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
-- MSSQL Server Benchmark Setup Script
-- This script creates the database, enables CDC, and creates tables
-- Connection: sqlserver://sa:YourStrong!Passw0rd@localhost:1433
-- ============================================================================
-- STAGE 1: Create Database
-- ============================================================================
PRINT '=== STAGE 1: Creating testdb database ==='
GO
USE master;
GO
IF NOT EXISTS (SELECT name FROM sys.databases WHERE name = N'testdb')
BEGIN
CREATE DATABASE testdb;
ALTER DATABASE testdb SET ALLOW_SNAPSHOT_ISOLATION ON;
PRINT 'Database testdb created successfully'
END
ELSE
BEGIN
PRINT 'Database testdb already exists'
END
GO
-- ============================================================================
-- STAGE 2: Enable CDC on Database
-- ============================================================================
PRINT '=== STAGE 2: Enabling CDC on database ==='
GO
USE testdb;
GO
EXEC sys.sp_cdc_enable_db;
PRINT 'CDC enabled on database'
GO
-- ============================================================================
-- STAGE 3: Create Tables and Enable CDC
-- ============================================================================
PRINT '=== STAGE 3: Creating tables and enabling CDC ==='
GO
-- Create rpcn schema if needed
IF NOT EXISTS (SELECT 1 FROM sys.schemas WHERE name = 'rpcn')
BEGIN
EXEC('CREATE SCHEMA rpcn');
PRINT 'Schema rpcn created'
END
GO
-- Create dbo.users table
PRINT 'Creating table dbo.users...'
GO
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = 'users' AND schema_id = SCHEMA_ID('dbo'))
BEGIN
CREATE TABLE dbo.users (
id INT IDENTITY(1,1) PRIMARY KEY,
name NVARCHAR(100) NOT NULL,
surname NVARCHAR(100) NOT NULL,
about NVARCHAR(MAX) NOT NULL,
email NVARCHAR(255) NOT NULL,
date_of_birth DATE NULL,
join_date DATE NULL,
created_at DATETIME2 NOT NULL DEFAULT SYSUTCDATETIME(),
is_active BIT NOT NULL DEFAULT 1,
login_count INT NOT NULL DEFAULT 0,
balance DECIMAL(10,2) NOT NULL DEFAULT 0.00
);
EXEC sys.sp_cdc_enable_table
@source_schema = 'dbo',
@source_name = 'users',
@role_name = NULL;
PRINT 'Table dbo.users created and CDC enabled'
END
ELSE
BEGIN
PRINT 'Table dbo.users already exists'
END
GO
-- Create dbo.products table
PRINT 'Creating table dbo.products...'
GO
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = 'products' AND schema_id = SCHEMA_ID('dbo'))
BEGIN
CREATE TABLE dbo.products (
id INT IDENTITY(1,1) PRIMARY KEY,
name NVARCHAR(100) NOT NULL,
info NVARCHAR(100) NOT NULL,
description NVARCHAR(MAX) NOT NULL,
email NVARCHAR(255) NOT NULL,
date_added DATE NULL,
join_date DATE NULL,
created_at DATETIME2 NOT NULL DEFAULT SYSUTCDATETIME(),
is_active BIT NOT NULL DEFAULT 1,
basket_count INT NOT NULL DEFAULT 0,
price DECIMAL(10,2) NOT NULL DEFAULT 0.00
);
EXEC sys.sp_cdc_enable_table
@source_schema = 'dbo',
@source_name = 'products',
@role_name = NULL;
PRINT 'Table dbo.products created and CDC enabled'
END
ELSE
BEGIN
PRINT 'Table dbo.products already exists'
END
GO
-- Create dbo.cart table
PRINT 'Creating table dbo.cart...'
GO
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = 'cart' AND schema_id = SCHEMA_ID('dbo'))
BEGIN
CREATE TABLE dbo.cart (
id INT IDENTITY(1,1) PRIMARY KEY,
name NVARCHAR(100) NOT NULL,
info NVARCHAR(MAX) NOT NULL,
email NVARCHAR(255) NOT NULL,
date_of_birth DATE NULL,
created_at DATETIME2 NOT NULL DEFAULT SYSUTCDATETIME(),
is_active BIT NOT NULL DEFAULT 1,
login_count INT NOT NULL DEFAULT 0,
balance DECIMAL(10,2) NOT NULL DEFAULT 0.00
);
EXEC sys.sp_cdc_enable_table
@source_schema = 'dbo',
@source_name = 'cart',
@role_name = NULL;
PRINT 'Table dbo.cart created and CDC enabled'
END
ELSE
BEGIN
PRINT 'Table dbo.cart already exists'
END
GO
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = 'cart2' AND schema_id = SCHEMA_ID('dbo'))
BEGIN
CREATE TABLE dbo.cart2 (
id INT IDENTITY(1,1) PRIMARY KEY,
name NVARCHAR(100) NOT NULL,
info NVARCHAR(MAX) NOT NULL,
email NVARCHAR(255) NOT NULL,
date_of_birth DATE NULL,
created_at DATETIME2 NOT NULL DEFAULT SYSUTCDATETIME(),
is_active BIT NOT NULL DEFAULT 1,
login_count INT NOT NULL DEFAULT 0,
balance DECIMAL(10,2) NOT NULL DEFAULT 0.00
);
EXEC sys.sp_cdc_enable_table
@source_schema = 'dbo',
@source_name = 'cart2',
@role_name = NULL;
PRINT 'Table dbo.cart2 created and CDC enabled'
END
ELSE
BEGIN
PRINT 'Table dbo.cart2 already exists'
END
GO