-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path00_create_database.sql
37 lines (32 loc) · 1.4 KB
/
00_create_database.sql
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
/****************************************************************************
- Create database "ServiceBrokerBeginner" if it doesn't exist (yet)
- Activate Service Broker
*****************************************************************************/
use master
go
/* set this to 1 if you want to recreate your database */
declare @recreate_db bit = 0
/* check if database exists already */
declare @db_exists bit = ISNULL((select 1 from sys.databases where [name] = 'ServiceBrokerBeginner'), 0)
/* check if Service Broker is enabled */
declare @is_broker_enabled bit = ISNULL((select is_broker_enabled from sys.databases where [name] = 'ServiceBrokerBeginner'), 0)
if @recreate_db = 1 and @db_exists = 1
begin
/* prevent getting blocked by other processes */
alter database ServiceBrokerBeginner set single_user with rollback immediate
/* drop databse */
drop database ServiceBrokerBeginner
end
/* conditional create */
if @db_exists = 0 or @recreate_db = 1
create database ServiceBrokerBeginner
/* Service Broker activation */
if @is_broker_enabled = 0
begin
/* prevent getting blocked by other processes */
alter database ServiceBrokerBeginner set single_user with rollback immediate
/* activate Service Broker */
alter database ServiceBrokerBeginner set enable_broker
/* back to multi user */
alter database ServiceBrokerBeginner set multi_user with rollback immediate
end