User Tools

Site Tools


EASA Database Migration

EASA installs a MySQL database which contains tables that EASA requires and supports creation of customer tables.

This page provides the details to migrate from MySQL to SQL Server.

MySQL Reference Scripts provides scripts to aide in migration to another database vendor.


EASA Database Configuration files

When using an external database, the <EASAROOT>\db folder must be deleted or renamed (eg. <EASAROOT>\db_old

New or existing database drivers live in:

  • <EASAROOT>\tomcat\lib\

The three files below will need to be modified to migrate from MySQL to (in this example) SQL Server, the easa-share folder is available to the EASAP Servers these changes only need to be made on the EASA Server and they will propagate.

  • <SERVERDATA>\easa-share\admin\config\
    • excel.cfg.xml
    • excelTesting.cfg.xml
  • <SERVERDATA>\easa\admin\config\
    • easa.cfg.xml
  • for all three files
    • modify hibernate.dialect property to org.hibernate.dialect.SQLServerDialect
    • comment out hibernate.default_schema
      • ie. change to <!--property name="hibernate.default_schema">easa</property-->
  • for excel.cfg.xml and excelTesting.cfg.xml
    • modify hibernate.connection.driver_class to com.microsoft.sqlserver.jdbc.SQLServerDriver
  • for excel.cfg.xml
  • modify hibernate.connection.url to jdbc:sqlserver://hostname_or_ip_address:port_number;databaseName=excel;
  • for excelTesting.cfg.xml
    • modify hibernate.connection.url to jdbc:sqlserver://machine_name_or_ip_address:port_number;databaseName=excelTesting;

Adding new properties may cause problems, check with EASA Support if new properties are needed.


1. Create Four SQL Server Databases

Run the script below to create the following four databases:

  • easa → internal database for an EASA Server (required)
  • stockdata → database for the Stock Screener example EASAP and tutorial
  • exceltesting → database for development of any Excel Client EASAP
  • excel → database for any Published Excel Client EASAP

createDatabases.sql

createDatabases.sql
CREATE DATABASE easa;
CREATE DATABASE stockdata;
CREATE DATABASE exceltesting;
CREATE DATABASE excel;

2. Create Four SQL Server tables

Run the following scripts.

tbl_job.sql

tbl_job.sql
USE [easa]
GO
CREATE TABLE tbl_job
(
JOB_ID INT NOT NULL IDENTITY(1,1),
PARENT_JOB_ID INT DEFAULT NULL,
PATH VARCHAR(255) DEFAULT NULL,
USERNAME VARCHAR(255) DEFAULT NULL,
MODE VARCHAR(255) DEFAULT NULL,
LDIR VARCHAR(255) DEFAULT NULL,
APPDIR VARCHAR(255) DEFAULT NULL,
JOB_STATUS VARCHAR(255) DEFAULT NULL,
NON_BATCH_SOFTWARE VARCHAR(45) DEFAULT NULL,
DATE_SUBMITTED datetime DEFAULT NULL,
STATE SMALLINT DEFAULT NULL,
SIM_NUM INT DEFAULT NULL,
APP_TITLE VARCHAR(255) DEFAULT NULL,
NOTE VARCHAR(255) DEFAULT NULL,
REMOTE_ID INT DEFAULT NULL,
REMOTE_CS VARCHAR(255) DEFAULT NULL,
PRIMARY KEY (JOB_ID),
FOREIGN KEY (PARENT_JOB_ID) REFERENCES tbl_job(JOB_ID)
);
GO

stockdata.sql

stockdata.sql
USE [master]
GO
/****** Object:  Database [stockdata]    Script Date: 15/06/2017 15:16:28 ******/
CREATE DATABASE [stockdata] ON  PRIMARY 
 
/*PLEASE CHANGE THE DIRECTORY PATH ACCORDINGLY: 'C:\Program Files\Microsoft SQL Server Full\MSSQL10_50.MSSQLSERVER_FULL\MSSQL\DATA\stockdata.mdf'*/
( NAME = N'stockdata', FILENAME = N'C:\Program Files\Microsoft SQL Server Full\MSSQL10_50.MSSQLSERVER_FULL\MSSQL\DATA\stockdata.mdf' , SIZE = 2304KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
 LOG ON 
 
 /*PLEASE CHANGE THE DIRECTORY PATH ACCORDINGLY: 'C:\Program Files\Microsoft SQL Server Full\MSSQL10_50.MSSQLSERVER_FULL\MSSQL\DATA\stockdata_log.LDF'*/
( NAME = N'stockdata_log', FILENAME = N'C:\Program Files\Microsoft SQL Server Full\MSSQL10_50.MSSQLSERVER_FULL\MSSQL\DATA\stockdata_log.LDF' , SIZE = 576KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO
 
/*OR YOU CAN CREATE THE DATABASE MANUALLY AND JUST RUN THE SCRIPT BELOW*/
ALTER DATABASE [stockdata] SET COMPATIBILITY_LEVEL = 100
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
BEGIN
EXEC [stockdata].[dbo].[sp_fulltext_database] @action = 'enable'
END
GO
ALTER DATABASE [stockdata] SET ANSI_NULL_DEFAULT OFF 
GO
ALTER DATABASE [stockdata] SET ANSI_NULLS OFF 
GO
ALTER DATABASE [stockdata] SET ANSI_PADDING OFF 
GO
ALTER DATABASE [stockdata] SET ANSI_WARNINGS OFF 
GO
ALTER DATABASE [stockdata] SET ARITHABORT OFF 
GO
ALTER DATABASE [stockdata] SET AUTO_CLOSE OFF 
GO
ALTER DATABASE [stockdata] SET AUTO_SHRINK OFF 
GO
ALTER DATABASE [stockdata] SET AUTO_UPDATE_STATISTICS ON 
GO
ALTER DATABASE [stockdata] SET CURSOR_CLOSE_ON_COMMIT OFF 
GO
ALTER DATABASE [stockdata] SET CURSOR_DEFAULT  GLOBAL 
GO
ALTER DATABASE [stockdata] SET CONCAT_NULL_YIELDS_NULL OFF 
GO
ALTER DATABASE [stockdata] SET NUMERIC_ROUNDABORT OFF 
GO
ALTER DATABASE [stockdata] SET QUOTED_IDENTIFIER OFF 
GO
ALTER DATABASE [stockdata] SET RECURSIVE_TRIGGERS OFF 
GO
ALTER DATABASE [stockdata] SET  ENABLE_BROKER 
GO
ALTER DATABASE [stockdata] SET AUTO_UPDATE_STATISTICS_ASYNC OFF 
GO
ALTER DATABASE [stockdata] SET DATE_CORRELATION_OPTIMIZATION OFF 
GO
ALTER DATABASE [stockdata] SET TRUSTWORTHY OFF 
GO
ALTER DATABASE [stockdata] SET ALLOW_SNAPSHOT_ISOLATION OFF 
GO
ALTER DATABASE [stockdata] SET PARAMETERIZATION SIMPLE 
GO
ALTER DATABASE [stockdata] SET READ_COMMITTED_SNAPSHOT OFF 
GO
ALTER DATABASE [stockdata] SET HONOR_BROKER_PRIORITY OFF 
GO
ALTER DATABASE [stockdata] SET RECOVERY FULL 
GO
ALTER DATABASE [stockdata] SET  MULTI_USER 
GO
ALTER DATABASE [stockdata] SET PAGE_VERIFY CHECKSUM  
GO
ALTER DATABASE [stockdata] SET DB_CHAINING OFF 
GO
EXEC sys.sp_db_vardecimal_storage_format N'stockdata', N'ON'
GO
USE [stockdata]
GO
/****** Object:  Table [dbo].[exchange]    Script Date: 15/06/2017 15:16:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[exchange](
	[ID] [INT] IDENTITY(1,1) NOT NULL,
	[Symbol] [VARCHAR](255) NULL DEFAULT (NULL),
	[Company] [VARCHAR](255) NULL DEFAULT (NULL),
	[Industry] [VARCHAR](255) NULL DEFAULT (NULL),
	[SPIndex] [VARCHAR](255) NULL DEFAULT (NULL),
	[Exchange] [VARCHAR](255) NULL DEFAULT (NULL),
	[Price] [REAL] NULL DEFAULT (NULL),
	[Sector] [VARCHAR](255) NULL DEFAULT (NULL),
	[Revenue] [REAL] NULL DEFAULT (NULL),
PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
 
GO
SET ANSI_PADDING OFF
GO
USE [master]
GO
ALTER DATABASE [stockdata] SET  READ_WRITE 
GO

exceltesting.sql

exceltesting.sql
USE [master]
GO
/****** Object:  Database [exceltesting]    Script Date: 13/06/2017 13:54:19 ******/
CREATE DATABASE [exceltesting] ON  PRIMARY 
/*PLEASE CHANGE THE DIRECTORY PATH ACCORDINGLY: 'D:\DBInternal\exceltesting.mdf'*/
( NAME = N'exceltesting', FILENAME = N'D:\DBInternal\exceltesting.mdf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
 LOG ON 
 /*PLEASE CHANGE THE DIRECTORY PATH ACCORDINGLY: 'D:\DBInternal\exceltesting_log.ldf'*/
( NAME = N'exceltesting1_log', FILENAME = N'D:\DBInternal\exceltesting_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO
 
/*OR YOU CAN CREATE THE DATABASE MANUALLY AND JUST RUN THE SCRIPT BELOW*/
ALTER DATABASE [exceltesting] SET COMPATIBILITY_LEVEL = 100
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
BEGIN
EXEC [exceltesting].[dbo].[sp_fulltext_database] @action = 'enable'
END
GO
ALTER DATABASE [exceltesting] SET ANSI_NULL_DEFAULT OFF 
GO
ALTER DATABASE [exceltesting] SET ANSI_NULLS OFF 
GO
ALTER DATABASE [exceltesting] SET ANSI_PADDING OFF 
GO
ALTER DATABASE [exceltesting] SET ANSI_WARNINGS OFF 
GO
ALTER DATABASE [exceltesting] SET ARITHABORT OFF 
GO
ALTER DATABASE [exceltesting] SET AUTO_CLOSE OFF 
GO
ALTER DATABASE [exceltesting] SET AUTO_SHRINK OFF 
GO
ALTER DATABASE [exceltesting] SET AUTO_UPDATE_STATISTICS ON 
GO
ALTER DATABASE [exceltesting] SET CURSOR_CLOSE_ON_COMMIT OFF 
GO
ALTER DATABASE [exceltesting] SET CURSOR_DEFAULT  GLOBAL 
GO
ALTER DATABASE [exceltesting] SET CONCAT_NULL_YIELDS_NULL OFF 
GO
ALTER DATABASE [exceltesting] SET NUMERIC_ROUNDABORT OFF 
GO
ALTER DATABASE [exceltesting] SET QUOTED_IDENTIFIER OFF 
GO
ALTER DATABASE [exceltesting] SET RECURSIVE_TRIGGERS OFF 
GO
ALTER DATABASE [exceltesting] SET  DISABLE_BROKER 
GO
ALTER DATABASE [exceltesting] SET AUTO_UPDATE_STATISTICS_ASYNC OFF 
GO
ALTER DATABASE [exceltesting] SET DATE_CORRELATION_OPTIMIZATION OFF 
GO
ALTER DATABASE [exceltesting] SET TRUSTWORTHY OFF 
GO
ALTER DATABASE [exceltesting] SET ALLOW_SNAPSHOT_ISOLATION OFF 
GO
ALTER DATABASE [exceltesting] SET PARAMETERIZATION SIMPLE 
GO
ALTER DATABASE [exceltesting] SET READ_COMMITTED_SNAPSHOT OFF 
GO
ALTER DATABASE [exceltesting] SET HONOR_BROKER_PRIORITY OFF 

excel.sql

excel.sql
USE [master]
GO
/****** Object:  Database [excel]    Script Date: 13/06/2017 13:55:12 ******/
CREATE DATABASE [excel] ON  PRIMARY 
 
 
/*PLEASE CHANGE THE DIRECTORY PATH ACCORDINGLY: 'D:\DBInternal\excel.mdf'*/
( NAME = N'excel', FILENAME = N'D:\DBInternal\excel.mdf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
 LOG ON 
 
 /*PLEASE CHANGE THE DIRECTORY PATH ACCORDINGLY: 'D:\DBInternal\excel_log.ldf'*/
( NAME = N'excel1_log', FILENAME = N'D:\DBInternal\excel_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO
 
/*OR YOU CAN CREATE THE DATABASE MANUALLY AND JUST RUN THE SCRIPT BELOW*/
ALTER DATABASE [excel] SET COMPATIBILITY_LEVEL = 100
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
BEGIN
EXEC [excel].[dbo].[sp_fulltext_database] @action = 'enable'
END
GO
ALTER DATABASE [excel] SET ANSI_NULL_DEFAULT OFF 
GO
ALTER DATABASE [excel] SET ANSI_NULLS OFF 
GO
ALTER DATABASE [excel] SET ANSI_PADDING OFF 
GO
ALTER DATABASE [excel] SET ANSI_WARNINGS OFF 
GO
ALTER DATABASE [excel] SET ARITHABORT OFF 
GO
ALTER DATABASE [excel] SET AUTO_CLOSE OFF 
GO
ALTER DATABASE [excel] SET AUTO_SHRINK OFF 
GO
ALTER DATABASE [excel] SET AUTO_UPDATE_STATISTICS ON 
GO
ALTER DATABASE [excel] SET CURSOR_CLOSE_ON_COMMIT OFF 
GO
ALTER DATABASE [excel] SET CURSOR_DEFAULT  GLOBAL 
GO
ALTER DATABASE [excel] SET CONCAT_NULL_YIELDS_NULL OFF 
GO
ALTER DATABASE [excel] SET NUMERIC_ROUNDABORT OFF 
GO
ALTER DATABASE [excel] SET QUOTED_IDENTIFIER OFF 
GO
ALTER DATABASE [excel] SET RECURSIVE_TRIGGERS OFF 
GO
ALTER DATABASE [excel] SET  DISABLE_BROKER 
GO
ALTER DATABASE [excel] SET AUTO_UPDATE_STATISTICS_ASYNC OFF 
GO
ALTER DATABASE [excel] SET DATE_CORRELATION_OPTIMIZATION OFF 
GO
ALTER DATABASE [excel] SET TRUSTWORTHY OFF 
GO
ALTER DATABASE [excel] SET ALLOW_SNAPSHOT_ISOLATION OFF 
GO
ALTER DATABASE [excel] SET PARAMETERIZATION SIMPLE 
GO
ALTER DATABASE [excel] SET READ_COMMITTED_SNAPSHOT OFF 
GO
ALTER DATABASE [excel] SET HONOR_BROKER_PRIORITY OFF 
GO
ALTER DATABASE [excel] SET RECOVERY FULL 
GO
ALTER DATABASE [excel] SET  MULTI_USER 
GO
ALTER DATABASE [excel] SET PAGE_VERIFY CHECKSUM  
GO
ALTER DATABASE [excel] SET DB_CHAINING OFF 
GO
EXEC sys.sp_db_vardecimal_storage_format N'excel', N'ON'
GO
USE [excel]
GO
/****** Object:  Table [dbo].[CASES]    Script Date: 13/06/2017 13:55:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[CASES](
	[id] [NUMERIC](19, 0) NOT NULL,
	[created] [datetime] NULL,
	[created_by] [VARCHAR](255) NULL,
	[pricing_id] [VARCHAR](255) NULL,
	[data_file_image] [image] NULL,
	[last_modified] [datetime] NULL,
	[last_modified_by] [VARCHAR](255) NULL,
	[STATUS] [VARCHAR](255) NULL,
	[excel_file_fk] [NUMERIC](19, 0) NULL,
PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
 
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[DATA]    Script Date: 13/06/2017 13:55:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[DATA](
	[multi_type] [text] NULL,
	[TYPE] [INT] NULL,
	[VALUE] [text] NULL,
	[excel_file_fk] [NUMERIC](19, 0) NOT NULL,
	[named_range_fk] [VARCHAR](255) NOT NULL,
	[case_fk] [NUMERIC](19, 0) NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[case_fk] ASC,
	[excel_file_fk] ASC,
	[named_range_fk] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
 
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[EASAPS]    Script Date: 13/06/2017 13:55:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[EASAPS](
	[id] [NUMERIC](19, 0) NOT NULL,
	[easap_name] [VARCHAR](255) NULL,
	[easap_uniqueId] [VARCHAR](255) NULL,
PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
UNIQUE NONCLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
UNIQUE NONCLUSTERED 
(
	[easap_name] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
UNIQUE NONCLUSTERED 
(
	[easap_uniqueId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
 
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[EXCEL_FILE]    Script Date: 13/06/2017 13:55:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[EXCEL_FILE](
	[id] [NUMERIC](19, 0) NOT NULL,
	[last_modified] [datetime] NULL,
	[name] [VARCHAR](255) NULL,
	[save_type] [VARCHAR](255) NULL,
	[easap_fk] [NUMERIC](19, 0) NULL,
PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
UNIQUE NONCLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
 
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[NAMED_RANGE]    Script Date: 13/06/2017 13:55:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[NAMED_RANGE](
	[name] [VARCHAR](255) NOT NULL,
	[multi_type] [text] NULL,
	[VALUE] [text] NULL,
	[excel_file_fk] [NUMERIC](19, 0) NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[excel_file_fk] ASC,
	[name] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
 
GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[CASES]  WITH CHECK ADD  CONSTRAINT [FK3CEF323277DA6BE] FOREIGN KEY([excel_file_fk])
REFERENCES [dbo].[EXCEL_FILE] ([id])
GO
ALTER TABLE [dbo].[CASES] CHECK CONSTRAINT [FK3CEF323277DA6BE]
GO
ALTER TABLE [dbo].[DATA]  WITH CHECK ADD  CONSTRAINT [FK1FE7AA6F969779] FOREIGN KEY([case_fk])
REFERENCES [dbo].[CASES] ([id])
GO
ALTER TABLE [dbo].[DATA] CHECK CONSTRAINT [FK1FE7AA6F969779]
GO
ALTER TABLE [dbo].[DATA]  WITH CHECK ADD  CONSTRAINT [FK1FE7AA7DAE806] FOREIGN KEY([excel_file_fk], [named_range_fk])
REFERENCES [dbo].[NAMED_RANGE] ([excel_file_fk], [name])
GO
ALTER TABLE [dbo].[DATA] CHECK CONSTRAINT [FK1FE7AA7DAE806]
GO
ALTER TABLE [dbo].[EXCEL_FILE]  WITH CHECK ADD  CONSTRAINT [FKC85A522452EA222F] FOREIGN KEY([easap_fk])
REFERENCES [dbo].[EASAPS] ([id])
GO
ALTER TABLE [dbo].[EXCEL_FILE] CHECK CONSTRAINT [FKC85A522452EA222F]
GO
ALTER TABLE [dbo].[NAMED_RANGE]  WITH CHECK ADD  CONSTRAINT [FKB0810C77277DA6BE] FOREIGN KEY([excel_file_fk])
REFERENCES [dbo].[EXCEL_FILE] ([id])
GO
ALTER TABLE [dbo].[NAMED_RANGE] CHECK CONSTRAINT [FKB0810C77277DA6BE]
GO
USE [master]
GO
ALTER DATABASE [excel] SET  READ_WRITE 
GO


Page Tools