[성현모] DBPatch 간소화, 경로 변경
This commit is contained in:
20
DBPatch/DBPatch_AccountDB_Create.bat
Normal file
20
DBPatch/DBPatch_AccountDB_Create.bat
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
@echo off
|
||||||
|
CD ./sqlScripts/
|
||||||
|
|
||||||
|
::log
|
||||||
|
IF NOT EXIST .\logs mkdir logs
|
||||||
|
|
||||||
|
::DB 정의 스키마
|
||||||
|
SET Schema=SystemX.DB.AccountDB
|
||||||
|
|
||||||
|
::연결정보
|
||||||
|
SET ServerIP=127.0.0.1
|
||||||
|
SET ServerPort=1433
|
||||||
|
SET UserID=SystemX
|
||||||
|
SET Passwd=X
|
||||||
|
SET DBName=AccountDB
|
||||||
|
|
||||||
|
::Default DB
|
||||||
|
@echo off
|
||||||
|
::CALL _CreateDB.bat %Schema% %ServerIP% %ServerPort% %UserID% %Passwd% %DBName%
|
||||||
|
::CALL _CreateDB.bat %Schema% %ServerIP% %ServerPort% %UserID% %Passwd% %DBName%_DEV
|
||||||
23
DBPatch/DBPatch_AccountDB_Update.bat
Normal file
23
DBPatch/DBPatch_AccountDB_Update.bat
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
@echo off
|
||||||
|
CD .\sqlScripts\
|
||||||
|
|
||||||
|
::log
|
||||||
|
IF NOT EXIST .\logs mkdir logs
|
||||||
|
|
||||||
|
::DB 정의 스키마
|
||||||
|
SET Schema=SystemX.DB.AccountDB
|
||||||
|
|
||||||
|
::연결정보
|
||||||
|
SET ServerIP=127.0.0.1
|
||||||
|
SET ServerPort=1433
|
||||||
|
SET UserID=SystemX
|
||||||
|
SET Passwd=X
|
||||||
|
SET DBName=AccountDB
|
||||||
|
|
||||||
|
@echo off
|
||||||
|
::generate update script
|
||||||
|
CALL _UpdateScriptGenerate.bat %Schema% %ServerIP% %ServerPort% %UserID% %Passwd% %DBName%
|
||||||
|
|
||||||
|
::Default DB
|
||||||
|
::CALL _UpdateDB.bat %Schema% %ServerIP% %ServerPort% %UserID% %Passwd% %DBName%
|
||||||
|
::CALL _UpdateDB.bat %Schema% %ServerIP% %ServerPort% %UserID% %Passwd% %DBName%_DEV
|
||||||
20
DBPatch/DBPatch_UniqueKeyDB_Create.bat
Normal file
20
DBPatch/DBPatch_UniqueKeyDB_Create.bat
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
@echo off
|
||||||
|
CD ./sqlScripts/
|
||||||
|
|
||||||
|
::log
|
||||||
|
IF NOT EXIST .\logs mkdir logs
|
||||||
|
|
||||||
|
::DB 정의 스키마
|
||||||
|
SET Schema=SystemX.DB.UniqueKeyDB
|
||||||
|
|
||||||
|
::연결정보
|
||||||
|
SET ServerIP=127.0.0.1
|
||||||
|
SET ServerPort=1433
|
||||||
|
SET UserID=SystemX
|
||||||
|
SET Passwd=X
|
||||||
|
SET DBName=UniqueKeyDB
|
||||||
|
|
||||||
|
::Default DB
|
||||||
|
@echo off
|
||||||
|
::CALL _CreateDB.bat %Schema% %ServerIP% %ServerPort% %UserID% %Passwd% %DBName%
|
||||||
|
::CALL _CreateDB.bat %Schema% %ServerIP% %ServerPort% %UserID% %Passwd% %DBName%_DEV
|
||||||
23
DBPatch/DBPatch_UniqueKeyDB_Update.bat
Normal file
23
DBPatch/DBPatch_UniqueKeyDB_Update.bat
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
@echo off
|
||||||
|
CD .\sqlScripts\
|
||||||
|
|
||||||
|
::log
|
||||||
|
IF NOT EXIST .\logs mkdir logs
|
||||||
|
|
||||||
|
::DB 정의 스키마
|
||||||
|
SET Schema=SystemX.DB.UniqueKeyDB
|
||||||
|
|
||||||
|
::연결정보
|
||||||
|
SET ServerIP=127.0.0.1
|
||||||
|
SET ServerPort=1433
|
||||||
|
SET UserID=SystemX
|
||||||
|
SET Passwd=X
|
||||||
|
SET DBName=UniqueKeyDB
|
||||||
|
|
||||||
|
@echo off
|
||||||
|
::generate update script
|
||||||
|
CALL _UpdateScriptGenerate.bat %Schema% %ServerIP% %ServerPort% %UserID% %Passwd% %DBName%
|
||||||
|
|
||||||
|
::Default DB
|
||||||
|
::CALL _UpdateDB.bat %Schema% %ServerIP% %ServerPort% %UserID% %Passwd% %DBName%
|
||||||
|
CALL _UpdateDB.bat %Schema% %ServerIP% %ServerPort% %UserID% %Passwd% %DBName%_DEV
|
||||||
346
DBPatch/sqlScripts/SystemX.DB.AccountDB_Create.sql
Normal file
346
DBPatch/sqlScripts/SystemX.DB.AccountDB_Create.sql
Normal file
@ -0,0 +1,346 @@
|
|||||||
|
/*
|
||||||
|
SystemX.DB.AccountDB의 배포 스크립트
|
||||||
|
|
||||||
|
이 코드는 도구를 사용하여 생성되었습니다.
|
||||||
|
파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
|
||||||
|
변경 내용이 손실됩니다.
|
||||||
|
*/
|
||||||
|
|
||||||
|
GO
|
||||||
|
SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON;
|
||||||
|
|
||||||
|
SET NUMERIC_ROUNDABORT OFF;
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
/*
|
||||||
|
:setvar DatabaseName "SystemX.DB.AccountDB"
|
||||||
|
:setvar DefaultFilePrefix "SystemX.DB.AccountDB"
|
||||||
|
:setvar DefaultDataPath ""
|
||||||
|
:setvar DefaultLogPath ""
|
||||||
|
*/
|
||||||
|
|
||||||
|
GO
|
||||||
|
:on error exit
|
||||||
|
GO
|
||||||
|
/*
|
||||||
|
SQLCMD 모드가 지원되지 않으면 SQLCMD 모드를 검색하고 스크립트를 실행하지 않습니다.
|
||||||
|
SQLCMD 모드를 설정한 후에 이 스크립트를 다시 사용하려면 다음을 실행합니다.
|
||||||
|
SET NOEXEC OFF;
|
||||||
|
*/
|
||||||
|
:setvar __IsSqlCmdEnabled "True"
|
||||||
|
GO
|
||||||
|
IF N'$(__IsSqlCmdEnabled)' NOT LIKE N'True'
|
||||||
|
BEGIN
|
||||||
|
PRINT N'이 스크립트를 실행하려면 SQLCMD 모드를 사용하도록 설정해야 합니다.';
|
||||||
|
SET NOEXEC ON;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
USE [master];
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF (DB_ID(N'$(DatabaseName)') IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
|
||||||
|
DROP DATABASE [$(DatabaseName)];
|
||||||
|
END
|
||||||
|
|
||||||
|
GO
|
||||||
|
PRINT N'$(DatabaseName) 데이터베이스를 만드는 중...'
|
||||||
|
GO
|
||||||
|
CREATE DATABASE [$(DatabaseName)] COLLATE Korean_Wansung_CI_AS
|
||||||
|
GO
|
||||||
|
USE [$(DatabaseName)];
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET ANSI_NULLS ON,
|
||||||
|
ANSI_PADDING ON,
|
||||||
|
ANSI_WARNINGS ON,
|
||||||
|
ARITHABORT ON,
|
||||||
|
CONCAT_NULL_YIELDS_NULL ON,
|
||||||
|
NUMERIC_ROUNDABORT OFF,
|
||||||
|
QUOTED_IDENTIFIER ON,
|
||||||
|
ANSI_NULL_DEFAULT ON,
|
||||||
|
CURSOR_DEFAULT LOCAL,
|
||||||
|
RECOVERY FULL,
|
||||||
|
CURSOR_CLOSE_ON_COMMIT OFF,
|
||||||
|
AUTO_CREATE_STATISTICS ON,
|
||||||
|
AUTO_SHRINK OFF,
|
||||||
|
AUTO_UPDATE_STATISTICS ON,
|
||||||
|
RECURSIVE_TRIGGERS OFF
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET ALLOW_SNAPSHOT_ISOLATION OFF;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET READ_COMMITTED_SNAPSHOT OFF
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET AUTO_UPDATE_STATISTICS_ASYNC OFF,
|
||||||
|
PAGE_VERIFY NONE,
|
||||||
|
DATE_CORRELATION_OPTIMIZATION OFF,
|
||||||
|
DISABLE_BROKER,
|
||||||
|
PARAMETERIZATION SIMPLE,
|
||||||
|
SUPPLEMENTAL_LOGGING OFF
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF IS_SRVROLEMEMBER(N'sysadmin') = 1
|
||||||
|
BEGIN
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
EXECUTE sp_executesql N'ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET TRUSTWORTHY OFF,
|
||||||
|
DB_CHAINING OFF
|
||||||
|
WITH ROLLBACK IMMEDIATE';
|
||||||
|
END
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
BEGIN
|
||||||
|
PRINT N'데이터베이스 설정을 수정할 수 없습니다. 이러한 설정을 적용하려면 SysAdmin이어야 합니다.';
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF IS_SRVROLEMEMBER(N'sysadmin') = 1
|
||||||
|
BEGIN
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
EXECUTE sp_executesql N'ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET HONOR_BROKER_PRIORITY OFF
|
||||||
|
WITH ROLLBACK IMMEDIATE';
|
||||||
|
END
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
BEGIN
|
||||||
|
PRINT N'데이터베이스 설정을 수정할 수 없습니다. 이러한 설정을 적용하려면 SysAdmin이어야 합니다.';
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET TARGET_RECOVERY_TIME = 0 SECONDS
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET FILESTREAM(NON_TRANSACTED_ACCESS = OFF),
|
||||||
|
CONTAINMENT = NONE
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET AUTO_CREATE_STATISTICS ON(INCREMENTAL = OFF),
|
||||||
|
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = OFF,
|
||||||
|
DELAYED_DURABILITY = DISABLED
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET QUERY_STORE (QUERY_CAPTURE_MODE = ALL, DATA_FLUSH_INTERVAL_SECONDS = 900, INTERVAL_LENGTH_MINUTES = 60, MAX_PLANS_PER_QUERY = 200, CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 367), MAX_STORAGE_SIZE_MB = 100)
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET QUERY_STORE = OFF
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE SCOPED CONFIGURATION SET MAXDOP = 0;
|
||||||
|
ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET MAXDOP = PRIMARY;
|
||||||
|
ALTER DATABASE SCOPED CONFIGURATION SET LEGACY_CARDINALITY_ESTIMATION = OFF;
|
||||||
|
ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET LEGACY_CARDINALITY_ESTIMATION = PRIMARY;
|
||||||
|
ALTER DATABASE SCOPED CONFIGURATION SET PARAMETER_SNIFFING = ON;
|
||||||
|
ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET PARAMETER_SNIFFING = PRIMARY;
|
||||||
|
ALTER DATABASE SCOPED CONFIGURATION SET QUERY_OPTIMIZER_HOTFIXES = OFF;
|
||||||
|
ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET QUERY_OPTIMIZER_HOTFIXES = PRIMARY;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET TEMPORAL_HISTORY_RETENTION ON
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF fulltextserviceproperty(N'IsFulltextInstalled') = 1
|
||||||
|
EXECUTE sp_fulltext_database 'enable';
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
PRINT N'테이블 [dbo].[tRefreshToken]을(를) 만드는 중...';
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
CREATE TABLE [dbo].[tRefreshToken] (
|
||||||
|
[cAuid] NVARCHAR (250) NOT NULL,
|
||||||
|
[cRefreshToken] NVARCHAR (1000) NOT NULL,
|
||||||
|
PRIMARY KEY CLUSTERED ([cAuid] ASC)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
PRINT N'테이블 [dbo].[tRole]을(를) 만드는 중...';
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
CREATE TABLE [dbo].[tRole] (
|
||||||
|
[cAuid] NVARCHAR (250) NOT NULL,
|
||||||
|
[cRoleID] TINYINT NOT NULL,
|
||||||
|
[cRoleName] NVARCHAR (20) NOT NULL,
|
||||||
|
PRIMARY KEY CLUSTERED ([cAuid] ASC)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
PRINT N'테이블 [dbo].[tUser]을(를) 만드는 중...';
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
CREATE TABLE [dbo].[tUser] (
|
||||||
|
[cUserID] NVARCHAR (50) NOT NULL,
|
||||||
|
[cAuid] NVARCHAR (250) NOT NULL,
|
||||||
|
[cPasswordHashed] NVARCHAR (250) NOT NULL,
|
||||||
|
[cState] TINYINT NOT NULL,
|
||||||
|
[cCreateDateTime] DATETIME2 (7) NOT NULL,
|
||||||
|
[cLastLoginDateTime] DATETIME2 (7) NULL,
|
||||||
|
PRIMARY KEY CLUSTERED ([cUserID] ASC)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
/*
|
||||||
|
배포 후 스크립트 템플릿
|
||||||
|
--------------------------------------------------------------------------------------
|
||||||
|
이 파일에는 빌드 스크립트에 추가될 SQL 문이 있습니다.
|
||||||
|
SQLCMD 구문을 사용하여 파일을 배포 후 스크립트에 포함합니다.
|
||||||
|
예: :r .\myfile.sql
|
||||||
|
SQLCMD 구문을 사용하여 배포 후 스크립트의 변수를 참조합니다.
|
||||||
|
예: :setvar TableName MyTable
|
||||||
|
SELECT * FROM [$(TableName)]
|
||||||
|
--------------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
IF NOT EXISTS (SELECT 1 FROM tUser WHERE cUserID = 'Alis')
|
||||||
|
BEGIN
|
||||||
|
INSERT INTO tUser (cUserID, cAuid, cPasswordHashed, cState, cCreateDateTime, cLastLoginDateTime)
|
||||||
|
VALUES ('Alis', 'SuperUserAlis' ,'oKLQCdunc2kT5aAVfK+POKwd8R3p8OZvs/NATwpg4gM=' ,1 ,GETDATE(), GETDATE());
|
||||||
|
|
||||||
|
INSERT INTO tRole(cAuid, cRoleID, cRoleName)
|
||||||
|
VALUES ('SuperUserAlis','20','SuperUser');
|
||||||
|
END
|
||||||
|
|
||||||
|
IF NOT EXISTS (SELECT 1 FROM tUser WHERE cUserID = 'SystemX')
|
||||||
|
BEGIN
|
||||||
|
INSERT INTO tUser (cUserID, cAuid, cPasswordHashed, cState, cCreateDateTime, cLastLoginDateTime)
|
||||||
|
VALUES ('SystemX', 'SuperUserSystemX' ,'S2irOEf+2n1sYsH7y+6/o16rc1HtXnj03a3qXfZLgBU=' ,1 ,GETDATE(), GETDATE());
|
||||||
|
|
||||||
|
INSERT INTO tRole(cAuid, cRoleID, cRoleName)
|
||||||
|
VALUES ('SuperUserSystemX','20','SuperUser');
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
GO
|
||||||
|
DECLARE @VarDecimalSupported AS BIT;
|
||||||
|
|
||||||
|
SELECT @VarDecimalSupported = 0;
|
||||||
|
|
||||||
|
IF ((ServerProperty(N'EngineEdition') = 3)
|
||||||
|
AND (((@@microsoftversion / power(2, 24) = 9)
|
||||||
|
AND (@@microsoftversion & 0xffff >= 3024))
|
||||||
|
OR ((@@microsoftversion / power(2, 24) = 10)
|
||||||
|
AND (@@microsoftversion & 0xffff >= 1600))))
|
||||||
|
SELECT @VarDecimalSupported = 1;
|
||||||
|
|
||||||
|
IF (@VarDecimalSupported > 0)
|
||||||
|
BEGIN
|
||||||
|
EXECUTE sp_db_vardecimal_storage_format N'$(DatabaseName)', 'ON';
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET MULTI_USER
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
PRINT N'업데이트가 완료되었습니다.';
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
89
DBPatch/sqlScripts/SystemX.DB.AccountDB_Update.sql
Normal file
89
DBPatch/sqlScripts/SystemX.DB.AccountDB_Update.sql
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
/*
|
||||||
|
AccountDB의 배포 스크립트
|
||||||
|
|
||||||
|
이 코드는 도구를 사용하여 생성되었습니다.
|
||||||
|
이 파일을 변경하면 잘못된 동작이 발생할 수 있으며 코드가 다시 생성되면
|
||||||
|
이러한 변경 내용이 손실됩니다.
|
||||||
|
*/
|
||||||
|
|
||||||
|
GO
|
||||||
|
SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON;
|
||||||
|
|
||||||
|
SET NUMERIC_ROUNDABORT OFF;
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
/*
|
||||||
|
:setvar DatabaseName "AccountDB"
|
||||||
|
:setvar DefaultFilePrefix "AccountDB"
|
||||||
|
:setvar DefaultDataPath "D:\20_MSSQL\DATA\"
|
||||||
|
:setvar DefaultLogPath "D:\20_MSSQL\DATA\"
|
||||||
|
*/
|
||||||
|
|
||||||
|
GO
|
||||||
|
:on error exit
|
||||||
|
GO
|
||||||
|
/*
|
||||||
|
SQLCMD 모드를 검색하고 SQLCMD 모드가 지원되지 않는 경우 스크립트 실행을 사용하지 않도록 설정합니다.
|
||||||
|
SQLCMD 모드를 사용하도록 설정한 후 스크립트를 다시 사용하도록 설정하려면 다음을 실행합니다.
|
||||||
|
NOEXEC를 끕니다.
|
||||||
|
*/
|
||||||
|
:setvar __IsSqlCmdEnabled "True"
|
||||||
|
GO
|
||||||
|
IF N'$(__IsSqlCmdEnabled)' NOT LIKE N'True'
|
||||||
|
BEGIN
|
||||||
|
PRINT N'이 스크립트를 실행하려면 SQLCMD 모드를 사용하도록 설정해야 합니다.';
|
||||||
|
SET NOEXEC ON;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
USE [$(DatabaseName)];
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
PRINT N'테이블 [dbo].[tUser]을(를) 변경하는 중...';
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
ALTER TABLE [dbo].[tUser]
|
||||||
|
ADD [cUpdateTest] NCHAR (10) NULL;
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
/*
|
||||||
|
배포 후 스크립트 템플릿
|
||||||
|
--------------------------------------------------------------------------------------
|
||||||
|
이 파일에는 빌드 스크립트에 추가될 SQL 문이 있습니다.
|
||||||
|
SQLCMD 구문을 사용하여 파일을 배포 후 스크립트에 포함합니다.
|
||||||
|
예: :r .\myfile.sql
|
||||||
|
SQLCMD 구문을 사용하여 배포 후 스크립트의 변수를 참조합니다.
|
||||||
|
예: :setvar TableName MyTable
|
||||||
|
SELECT * FROM [$(TableName)]
|
||||||
|
--------------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
IF NOT EXISTS (SELECT 1 FROM tUser WHERE cUserID = 'Alis')
|
||||||
|
BEGIN
|
||||||
|
INSERT INTO tUser (cUserID, cAuid, cPasswordHashed, cState, cCreateDateTime, cLastLoginDateTime)
|
||||||
|
VALUES ('Alis', 'SuperUserAlis' ,'oKLQCdunc2kT5aAVfK+POKwd8R3p8OZvs/NATwpg4gM=' ,1 ,GETDATE(), GETDATE());
|
||||||
|
|
||||||
|
INSERT INTO tRole(cAuid, cRoleID, cRoleName)
|
||||||
|
VALUES ('SuperUserAlis','20','SuperUser');
|
||||||
|
END
|
||||||
|
|
||||||
|
IF NOT EXISTS (SELECT 1 FROM tUser WHERE cUserID = 'SystemX')
|
||||||
|
BEGIN
|
||||||
|
INSERT INTO tUser (cUserID, cAuid, cPasswordHashed, cState, cCreateDateTime, cLastLoginDateTime)
|
||||||
|
VALUES ('SystemX', 'SuperUserSystemX' ,'S2irOEf+2n1sYsH7y+6/o16rc1HtXnj03a3qXfZLgBU=' ,1 ,GETDATE(), GETDATE());
|
||||||
|
|
||||||
|
INSERT INTO tRole(cAuid, cRoleID, cRoleName)
|
||||||
|
VALUES ('SuperUserSystemX','20','SuperUser');
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
GO
|
||||||
|
PRINT N'업데이트가 완료되었습니다.';
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
290
DBPatch/sqlScripts/SystemX.DB.UniqueKeyDB_Create.sql
Normal file
290
DBPatch/sqlScripts/SystemX.DB.UniqueKeyDB_Create.sql
Normal file
@ -0,0 +1,290 @@
|
|||||||
|
/*
|
||||||
|
SystemX.DB.UniqueKeyDB의 배포 스크립트
|
||||||
|
|
||||||
|
이 코드는 도구를 사용하여 생성되었습니다.
|
||||||
|
파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
|
||||||
|
변경 내용이 손실됩니다.
|
||||||
|
*/
|
||||||
|
|
||||||
|
GO
|
||||||
|
SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON;
|
||||||
|
|
||||||
|
SET NUMERIC_ROUNDABORT OFF;
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
/*
|
||||||
|
:setvar DatabaseName "SystemX.DB.UniqueKeyDB"
|
||||||
|
:setvar DefaultFilePrefix "SystemX.DB.UniqueKeyDB"
|
||||||
|
:setvar DefaultDataPath ""
|
||||||
|
:setvar DefaultLogPath ""
|
||||||
|
*/
|
||||||
|
|
||||||
|
GO
|
||||||
|
:on error exit
|
||||||
|
GO
|
||||||
|
/*
|
||||||
|
SQLCMD 모드가 지원되지 않으면 SQLCMD 모드를 검색하고 스크립트를 실행하지 않습니다.
|
||||||
|
SQLCMD 모드를 설정한 후에 이 스크립트를 다시 사용하려면 다음을 실행합니다.
|
||||||
|
SET NOEXEC OFF;
|
||||||
|
*/
|
||||||
|
:setvar __IsSqlCmdEnabled "True"
|
||||||
|
GO
|
||||||
|
IF N'$(__IsSqlCmdEnabled)' NOT LIKE N'True'
|
||||||
|
BEGIN
|
||||||
|
PRINT N'이 스크립트를 실행하려면 SQLCMD 모드를 사용하도록 설정해야 합니다.';
|
||||||
|
SET NOEXEC ON;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
USE [master];
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF (DB_ID(N'$(DatabaseName)') IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
|
||||||
|
DROP DATABASE [$(DatabaseName)];
|
||||||
|
END
|
||||||
|
|
||||||
|
GO
|
||||||
|
PRINT N'$(DatabaseName) 데이터베이스를 만드는 중...'
|
||||||
|
GO
|
||||||
|
CREATE DATABASE [$(DatabaseName)] COLLATE Korean_Wansung_CI_AS
|
||||||
|
GO
|
||||||
|
USE [$(DatabaseName)];
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET ANSI_NULLS ON,
|
||||||
|
ANSI_PADDING ON,
|
||||||
|
ANSI_WARNINGS ON,
|
||||||
|
ARITHABORT ON,
|
||||||
|
CONCAT_NULL_YIELDS_NULL ON,
|
||||||
|
NUMERIC_ROUNDABORT OFF,
|
||||||
|
QUOTED_IDENTIFIER ON,
|
||||||
|
ANSI_NULL_DEFAULT ON,
|
||||||
|
CURSOR_DEFAULT LOCAL,
|
||||||
|
RECOVERY FULL,
|
||||||
|
CURSOR_CLOSE_ON_COMMIT OFF,
|
||||||
|
AUTO_CREATE_STATISTICS ON,
|
||||||
|
AUTO_SHRINK OFF,
|
||||||
|
AUTO_UPDATE_STATISTICS ON,
|
||||||
|
RECURSIVE_TRIGGERS OFF
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET ALLOW_SNAPSHOT_ISOLATION OFF;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET READ_COMMITTED_SNAPSHOT OFF
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET AUTO_UPDATE_STATISTICS_ASYNC OFF,
|
||||||
|
PAGE_VERIFY NONE,
|
||||||
|
DATE_CORRELATION_OPTIMIZATION OFF,
|
||||||
|
DISABLE_BROKER,
|
||||||
|
PARAMETERIZATION SIMPLE,
|
||||||
|
SUPPLEMENTAL_LOGGING OFF
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF IS_SRVROLEMEMBER(N'sysadmin') = 1
|
||||||
|
BEGIN
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
EXECUTE sp_executesql N'ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET TRUSTWORTHY OFF,
|
||||||
|
DB_CHAINING OFF
|
||||||
|
WITH ROLLBACK IMMEDIATE';
|
||||||
|
END
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
BEGIN
|
||||||
|
PRINT N'데이터베이스 설정을 수정할 수 없습니다. 이러한 설정을 적용하려면 SysAdmin이어야 합니다.';
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF IS_SRVROLEMEMBER(N'sysadmin') = 1
|
||||||
|
BEGIN
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
EXECUTE sp_executesql N'ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET HONOR_BROKER_PRIORITY OFF
|
||||||
|
WITH ROLLBACK IMMEDIATE';
|
||||||
|
END
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
BEGIN
|
||||||
|
PRINT N'데이터베이스 설정을 수정할 수 없습니다. 이러한 설정을 적용하려면 SysAdmin이어야 합니다.';
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET TARGET_RECOVERY_TIME = 0 SECONDS
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET FILESTREAM(NON_TRANSACTED_ACCESS = OFF),
|
||||||
|
CONTAINMENT = NONE
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET AUTO_CREATE_STATISTICS ON(INCREMENTAL = OFF),
|
||||||
|
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = OFF,
|
||||||
|
DELAYED_DURABILITY = DISABLED
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET QUERY_STORE (QUERY_CAPTURE_MODE = ALL, DATA_FLUSH_INTERVAL_SECONDS = 900, INTERVAL_LENGTH_MINUTES = 60, MAX_PLANS_PER_QUERY = 200, CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 367), MAX_STORAGE_SIZE_MB = 100)
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET QUERY_STORE = OFF
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE SCOPED CONFIGURATION SET MAXDOP = 0;
|
||||||
|
ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET MAXDOP = PRIMARY;
|
||||||
|
ALTER DATABASE SCOPED CONFIGURATION SET LEGACY_CARDINALITY_ESTIMATION = OFF;
|
||||||
|
ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET LEGACY_CARDINALITY_ESTIMATION = PRIMARY;
|
||||||
|
ALTER DATABASE SCOPED CONFIGURATION SET PARAMETER_SNIFFING = ON;
|
||||||
|
ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET PARAMETER_SNIFFING = PRIMARY;
|
||||||
|
ALTER DATABASE SCOPED CONFIGURATION SET QUERY_OPTIMIZER_HOTFIXES = OFF;
|
||||||
|
ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET QUERY_OPTIMIZER_HOTFIXES = PRIMARY;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET TEMPORAL_HISTORY_RETENTION ON
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF fulltextserviceproperty(N'IsFulltextInstalled') = 1
|
||||||
|
EXECUTE sp_fulltext_database 'enable';
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
PRINT N'테이블 [dbo].[tUniqueKeyStorage]을(를) 만드는 중...';
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
CREATE TABLE [dbo].[tUniqueKeyStorage] (
|
||||||
|
[cIdentity] NVARCHAR (200) NOT NULL,
|
||||||
|
[cDateTime] DATETIME2 (7) NOT NULL,
|
||||||
|
[cData1] NVARCHAR (4000) NULL,
|
||||||
|
[cData2] NVARCHAR (4000) NULL,
|
||||||
|
[cData3] NVARCHAR (4000) NULL,
|
||||||
|
[cData4] NVARCHAR (4000) NULL,
|
||||||
|
[cData5] NVARCHAR (4000) NULL,
|
||||||
|
PRIMARY KEY CLUSTERED ([cIdentity] ASC)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
DECLARE @VarDecimalSupported AS BIT;
|
||||||
|
|
||||||
|
SELECT @VarDecimalSupported = 0;
|
||||||
|
|
||||||
|
IF ((ServerProperty(N'EngineEdition') = 3)
|
||||||
|
AND (((@@microsoftversion / power(2, 24) = 9)
|
||||||
|
AND (@@microsoftversion & 0xffff >= 3024))
|
||||||
|
OR ((@@microsoftversion / power(2, 24) = 10)
|
||||||
|
AND (@@microsoftversion & 0xffff >= 1600))))
|
||||||
|
SELECT @VarDecimalSupported = 1;
|
||||||
|
|
||||||
|
IF (@VarDecimalSupported > 0)
|
||||||
|
BEGIN
|
||||||
|
EXECUTE sp_db_vardecimal_storage_format N'$(DatabaseName)', 'ON';
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET MULTI_USER
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
PRINT N'업데이트가 완료되었습니다.';
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
57
DBPatch/sqlScripts/SystemX.DB.UniqueKeyDB_Update.sql
Normal file
57
DBPatch/sqlScripts/SystemX.DB.UniqueKeyDB_Update.sql
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
/*
|
||||||
|
UniqueKeyDB의 배포 스크립트
|
||||||
|
|
||||||
|
이 코드는 도구를 사용하여 생성되었습니다.
|
||||||
|
이 파일을 변경하면 잘못된 동작이 발생할 수 있으며 코드가 다시 생성되면
|
||||||
|
이러한 변경 내용이 손실됩니다.
|
||||||
|
*/
|
||||||
|
|
||||||
|
GO
|
||||||
|
SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON;
|
||||||
|
|
||||||
|
SET NUMERIC_ROUNDABORT OFF;
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
/*
|
||||||
|
:setvar DatabaseName "UniqueKeyDB"
|
||||||
|
:setvar DefaultFilePrefix "UniqueKeyDB"
|
||||||
|
:setvar DefaultDataPath "D:\20_MSSQL\DATA\"
|
||||||
|
:setvar DefaultLogPath "D:\20_MSSQL\DATA\"
|
||||||
|
*/
|
||||||
|
|
||||||
|
GO
|
||||||
|
:on error exit
|
||||||
|
GO
|
||||||
|
/*
|
||||||
|
SQLCMD 모드를 검색하고 SQLCMD 모드가 지원되지 않는 경우 스크립트 실행을 사용하지 않도록 설정합니다.
|
||||||
|
SQLCMD 모드를 사용하도록 설정한 후 스크립트를 다시 사용하도록 설정하려면 다음을 실행합니다.
|
||||||
|
NOEXEC를 끕니다.
|
||||||
|
*/
|
||||||
|
:setvar __IsSqlCmdEnabled "True"
|
||||||
|
GO
|
||||||
|
IF N'$(__IsSqlCmdEnabled)' NOT LIKE N'True'
|
||||||
|
BEGIN
|
||||||
|
PRINT N'이 스크립트를 실행하려면 SQLCMD 모드를 사용하도록 설정해야 합니다.';
|
||||||
|
SET NOEXEC ON;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
USE [$(DatabaseName)];
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
PRINT N'테이블 [dbo].[tUniqueKeyStorage]을(를) 변경하는 중...';
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
ALTER TABLE [dbo].[tUniqueKeyStorage]
|
||||||
|
ADD [cData6] NCHAR (10) NULL;
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
PRINT N'업데이트가 완료되었습니다.';
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
19
DBPatch/sqlScripts/_CreateDB.bat
Normal file
19
DBPatch/sqlScripts/_CreateDB.bat
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
@echo off
|
||||||
|
|
||||||
|
SET Schema=%1
|
||||||
|
SET ServerIP=%2
|
||||||
|
SET ServerPort=%3
|
||||||
|
SET UserID=%4
|
||||||
|
SET Passwd=%5
|
||||||
|
SET DBName=%6
|
||||||
|
|
||||||
|
SET SqlCmdOption=-C -U %UserID% -P %Passwd% -S %ServerIP%,%ServerPort% -f 65001 -o .\logs\%DBName%.log
|
||||||
|
SET DatabaseName=%DBName%
|
||||||
|
sqlcmd %SqlCmdOption% -i .\%Schema%_Create.sql
|
||||||
|
if errorlevel 1 goto errexit
|
||||||
|
goto end
|
||||||
|
:errexit
|
||||||
|
echo DB Patch Fail
|
||||||
|
goto end
|
||||||
|
:end
|
||||||
|
@echo on
|
||||||
20
DBPatch/sqlScripts/_UpdateDB.bat
Normal file
20
DBPatch/sqlScripts/_UpdateDB.bat
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
@echo off
|
||||||
|
|
||||||
|
SET Schema=%1
|
||||||
|
SET ServerIP=%2
|
||||||
|
SET ServerPort=%3
|
||||||
|
SET UserID=%4
|
||||||
|
SET Passwd=%5
|
||||||
|
SET DBName=%6
|
||||||
|
|
||||||
|
SET SqlCmdOption=-U %UserID% -P %Passwd% -S %ServerIP%,%ServerPort% -d %DBName% -o .\logs\%DBName%.log
|
||||||
|
SET DatabaseName=%DBName%
|
||||||
|
sqlcmd %SqlCmdOption% -i .\%Schema%_Update.sql
|
||||||
|
|
||||||
|
if errorlevel 1 goto errexit
|
||||||
|
goto end
|
||||||
|
:errexit
|
||||||
|
echo DB Patch Fail
|
||||||
|
goto end
|
||||||
|
:end
|
||||||
|
@echo on
|
||||||
11
DBPatch/sqlScripts/_UpdateScriptGenerate.bat
Normal file
11
DBPatch/sqlScripts/_UpdateScriptGenerate.bat
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
@echo off
|
||||||
|
|
||||||
|
SET Schema=%1
|
||||||
|
SET ServerIP=%2
|
||||||
|
SET ServerPort=%3
|
||||||
|
SET UserID=%4
|
||||||
|
SET Passwd=%5
|
||||||
|
SET DBName=%6
|
||||||
|
|
||||||
|
::create update sql file
|
||||||
|
sqlpackage /Action:Script /SourceFile:./dacpac/%Schema%.dacpac /TargetConnectionString:"server=%ServerIP%,%ServerPort%; user id=%UserID%; password=%Passwd%; database=%DBName%; TrustServerCertificate=true" /OutputPath:"./%Schema%_Update.sql" /p:CommentOutSetVarDeclarations=True
|
||||||
BIN
DBPatch/sqlScripts/dacpac/SystemX.DB.AccountDB.dacpac
Normal file
BIN
DBPatch/sqlScripts/dacpac/SystemX.DB.AccountDB.dacpac
Normal file
Binary file not shown.
BIN
DBPatch/sqlScripts/dacpac/SystemX.DB.UniqueKeyDB.dacpac
Normal file
BIN
DBPatch/sqlScripts/dacpac/SystemX.DB.UniqueKeyDB.dacpac
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -73,8 +73,8 @@
|
|||||||
<PostDeploy Include="dbo\Scripts\scriptAfterBuild.sql" />
|
<PostDeploy Include="dbo\Scripts\scriptAfterBuild.sql" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<PostBuildEvent>xcopy /y $(ProjectDir)$(OutputPath)$(TargetName)_Create.sql $(SolutionDir)DBPatch\sqlScripts\
|
<PostBuildEvent>xcopy /y $(ProjectDir)$(OutputPath)$(TargetName)_Create.sql $(SolutionDir)..\..\DBPatch\sqlScripts\
|
||||||
|
|
||||||
xcopy /y $(ProjectDir)$(OutputPath)$(TargetName).dacpac $(SolutionDir)DBPatch\sqlScripts\dacpac\</PostBuildEvent>
|
xcopy /y $(ProjectDir)$(OutputPath)$(TargetName).dacpac $(SolutionDir)..\..\DBPatch\sqlScripts\dacpac\</PostBuildEvent>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
||||||
@ -0,0 +1,75 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<Name>SystemX.DB.UniqueKeyDB</Name>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectVersion>4.1</ProjectVersion>
|
||||||
|
<ProjectGuid>{c67f3f97-1d52-4c75-a04f-16ed41822ccd}</ProjectGuid>
|
||||||
|
<DSP>Microsoft.Data.Tools.Schema.Sql.Sql160DatabaseSchemaProvider</DSP>
|
||||||
|
<OutputType>Database</OutputType>
|
||||||
|
<RootPath>
|
||||||
|
</RootPath>
|
||||||
|
<RootNamespace>SystemX.DB.UniqueKeyDB</RootNamespace>
|
||||||
|
<AssemblyName>SystemX.DB.UniqueKeyDB</AssemblyName>
|
||||||
|
<ModelCollation>1042,CI</ModelCollation>
|
||||||
|
<DefaultFileStructure>BySchemaAndSchemaType</DefaultFileStructure>
|
||||||
|
<DeployToDatabase>True</DeployToDatabase>
|
||||||
|
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||||
|
<TargetLanguage>CS</TargetLanguage>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<SqlServerVerification>False</SqlServerVerification>
|
||||||
|
<IncludeCompositeObjects>True</IncludeCompositeObjects>
|
||||||
|
<TargetDatabaseSet>True</TargetDatabaseSet>
|
||||||
|
<GenerateCreateScript>True</GenerateCreateScript>
|
||||||
|
<DefaultCollation>Korean_Wansung_CI_AS</DefaultCollation>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
|
||||||
|
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<DefineDebug>false</DefineDebug>
|
||||||
|
<DefineTrace>true</DefineTrace>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
|
||||||
|
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<DefineDebug>true</DefineDebug>
|
||||||
|
<DefineTrace>true</DefineTrace>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>
|
||||||
|
<!-- Default to the v11.0 targets path if the targets file for the current VS version is not found -->
|
||||||
|
<SSDTExists Condition="Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets')">True</SSDTExists>
|
||||||
|
<VisualStudioVersion Condition="'$(SSDTExists)' == ''">11.0</VisualStudioVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Condition="'$(SQLDBExtensionsRefPath)' != ''" Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
|
||||||
|
<Import Condition="'$(SQLDBExtensionsRefPath)' == ''" Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="Properties" />
|
||||||
|
<Folder Include="dbo" />
|
||||||
|
<Folder Include="dbo\Functions" />
|
||||||
|
<Folder Include="dbo\Scripts" />
|
||||||
|
<Folder Include="dbo\StoredProcedures" />
|
||||||
|
<Folder Include="dbo\Tables" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Build Include="dbo\Tables\tUniqueKeyStorage.sql" />
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<PostBuildEvent>xcopy /y $(ProjectDir)$(OutputPath)$(TargetName)_Create.sql $(SolutionDir)..\..\DBPatch\sqlScripts\
|
||||||
|
|
||||||
|
xcopy /y $(ProjectDir)$(OutputPath)$(TargetName).dacpac $(SolutionDir)..\..\DBPatch\sqlScripts\dacpac\</PostBuildEvent>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
CREATE TABLE [dbo].[tUniqueKeyStorage]
|
||||||
|
(
|
||||||
|
[cIdentity] NVARCHAR(200) NOT NULL PRIMARY KEY,
|
||||||
|
[cDateTime] DATETIME2 NOT NULL,
|
||||||
|
[cData1] NVARCHAR(4000),
|
||||||
|
[cData2] NVARCHAR(4000),
|
||||||
|
[cData3] NVARCHAR(4000),
|
||||||
|
[cData4] NVARCHAR(4000),
|
||||||
|
[cData5] NVARCHAR(4000),
|
||||||
|
)
|
||||||
@ -0,0 +1,290 @@
|
|||||||
|
/*
|
||||||
|
SystemX.DB.UniqueKeyDB의 배포 스크립트
|
||||||
|
|
||||||
|
이 코드는 도구를 사용하여 생성되었습니다.
|
||||||
|
파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
|
||||||
|
변경 내용이 손실됩니다.
|
||||||
|
*/
|
||||||
|
|
||||||
|
GO
|
||||||
|
SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON;
|
||||||
|
|
||||||
|
SET NUMERIC_ROUNDABORT OFF;
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
/*
|
||||||
|
:setvar DatabaseName "SystemX.DB.UniqueKeyDB"
|
||||||
|
:setvar DefaultFilePrefix "SystemX.DB.UniqueKeyDB"
|
||||||
|
:setvar DefaultDataPath ""
|
||||||
|
:setvar DefaultLogPath ""
|
||||||
|
*/
|
||||||
|
|
||||||
|
GO
|
||||||
|
:on error exit
|
||||||
|
GO
|
||||||
|
/*
|
||||||
|
SQLCMD 모드가 지원되지 않으면 SQLCMD 모드를 검색하고 스크립트를 실행하지 않습니다.
|
||||||
|
SQLCMD 모드를 설정한 후에 이 스크립트를 다시 사용하려면 다음을 실행합니다.
|
||||||
|
SET NOEXEC OFF;
|
||||||
|
*/
|
||||||
|
:setvar __IsSqlCmdEnabled "True"
|
||||||
|
GO
|
||||||
|
IF N'$(__IsSqlCmdEnabled)' NOT LIKE N'True'
|
||||||
|
BEGIN
|
||||||
|
PRINT N'이 스크립트를 실행하려면 SQLCMD 모드를 사용하도록 설정해야 합니다.';
|
||||||
|
SET NOEXEC ON;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
USE [master];
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
IF (DB_ID(N'$(DatabaseName)') IS NOT NULL)
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
|
||||||
|
DROP DATABASE [$(DatabaseName)];
|
||||||
|
END
|
||||||
|
|
||||||
|
GO
|
||||||
|
PRINT N'$(DatabaseName) 데이터베이스를 만드는 중...'
|
||||||
|
GO
|
||||||
|
CREATE DATABASE [$(DatabaseName)] COLLATE Korean_Wansung_CI_AS
|
||||||
|
GO
|
||||||
|
USE [$(DatabaseName)];
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET ANSI_NULLS ON,
|
||||||
|
ANSI_PADDING ON,
|
||||||
|
ANSI_WARNINGS ON,
|
||||||
|
ARITHABORT ON,
|
||||||
|
CONCAT_NULL_YIELDS_NULL ON,
|
||||||
|
NUMERIC_ROUNDABORT OFF,
|
||||||
|
QUOTED_IDENTIFIER ON,
|
||||||
|
ANSI_NULL_DEFAULT ON,
|
||||||
|
CURSOR_DEFAULT LOCAL,
|
||||||
|
RECOVERY FULL,
|
||||||
|
CURSOR_CLOSE_ON_COMMIT OFF,
|
||||||
|
AUTO_CREATE_STATISTICS ON,
|
||||||
|
AUTO_SHRINK OFF,
|
||||||
|
AUTO_UPDATE_STATISTICS ON,
|
||||||
|
RECURSIVE_TRIGGERS OFF
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET ALLOW_SNAPSHOT_ISOLATION OFF;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET READ_COMMITTED_SNAPSHOT OFF
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET AUTO_UPDATE_STATISTICS_ASYNC OFF,
|
||||||
|
PAGE_VERIFY NONE,
|
||||||
|
DATE_CORRELATION_OPTIMIZATION OFF,
|
||||||
|
DISABLE_BROKER,
|
||||||
|
PARAMETERIZATION SIMPLE,
|
||||||
|
SUPPLEMENTAL_LOGGING OFF
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF IS_SRVROLEMEMBER(N'sysadmin') = 1
|
||||||
|
BEGIN
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
EXECUTE sp_executesql N'ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET TRUSTWORTHY OFF,
|
||||||
|
DB_CHAINING OFF
|
||||||
|
WITH ROLLBACK IMMEDIATE';
|
||||||
|
END
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
BEGIN
|
||||||
|
PRINT N'데이터베이스 설정을 수정할 수 없습니다. 이러한 설정을 적용하려면 SysAdmin이어야 합니다.';
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF IS_SRVROLEMEMBER(N'sysadmin') = 1
|
||||||
|
BEGIN
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
EXECUTE sp_executesql N'ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET HONOR_BROKER_PRIORITY OFF
|
||||||
|
WITH ROLLBACK IMMEDIATE';
|
||||||
|
END
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
BEGIN
|
||||||
|
PRINT N'데이터베이스 설정을 수정할 수 없습니다. 이러한 설정을 적용하려면 SysAdmin이어야 합니다.';
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET TARGET_RECOVERY_TIME = 0 SECONDS
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET FILESTREAM(NON_TRANSACTED_ACCESS = OFF),
|
||||||
|
CONTAINMENT = NONE
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET AUTO_CREATE_STATISTICS ON(INCREMENTAL = OFF),
|
||||||
|
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = OFF,
|
||||||
|
DELAYED_DURABILITY = DISABLED
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET QUERY_STORE (QUERY_CAPTURE_MODE = ALL, DATA_FLUSH_INTERVAL_SECONDS = 900, INTERVAL_LENGTH_MINUTES = 60, MAX_PLANS_PER_QUERY = 200, CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 367), MAX_STORAGE_SIZE_MB = 100)
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET QUERY_STORE = OFF
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE SCOPED CONFIGURATION SET MAXDOP = 0;
|
||||||
|
ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET MAXDOP = PRIMARY;
|
||||||
|
ALTER DATABASE SCOPED CONFIGURATION SET LEGACY_CARDINALITY_ESTIMATION = OFF;
|
||||||
|
ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET LEGACY_CARDINALITY_ESTIMATION = PRIMARY;
|
||||||
|
ALTER DATABASE SCOPED CONFIGURATION SET PARAMETER_SNIFFING = ON;
|
||||||
|
ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET PARAMETER_SNIFFING = PRIMARY;
|
||||||
|
ALTER DATABASE SCOPED CONFIGURATION SET QUERY_OPTIMIZER_HOTFIXES = OFF;
|
||||||
|
ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET QUERY_OPTIMIZER_HOTFIXES = PRIMARY;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF EXISTS (SELECT 1
|
||||||
|
FROM [master].[dbo].[sysdatabases]
|
||||||
|
WHERE [name] = N'$(DatabaseName)')
|
||||||
|
BEGIN
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET TEMPORAL_HISTORY_RETENTION ON
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
IF fulltextserviceproperty(N'IsFulltextInstalled') = 1
|
||||||
|
EXECUTE sp_fulltext_database 'enable';
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
PRINT N'테이블 [dbo].[tUniqueKeyStorage]을(를) 만드는 중...';
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
CREATE TABLE [dbo].[tUniqueKeyStorage] (
|
||||||
|
[cIdentity] NVARCHAR (200) NOT NULL,
|
||||||
|
[cDateTime] DATETIME2 (7) NOT NULL,
|
||||||
|
[cData1] NVARCHAR (4000) NULL,
|
||||||
|
[cData2] NVARCHAR (4000) NULL,
|
||||||
|
[cData3] NVARCHAR (4000) NULL,
|
||||||
|
[cData4] NVARCHAR (4000) NULL,
|
||||||
|
[cData5] NVARCHAR (4000) NULL,
|
||||||
|
PRIMARY KEY CLUSTERED ([cIdentity] ASC)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
DECLARE @VarDecimalSupported AS BIT;
|
||||||
|
|
||||||
|
SELECT @VarDecimalSupported = 0;
|
||||||
|
|
||||||
|
IF ((ServerProperty(N'EngineEdition') = 3)
|
||||||
|
AND (((@@microsoftversion / power(2, 24) = 9)
|
||||||
|
AND (@@microsoftversion & 0xffff >= 3024))
|
||||||
|
OR ((@@microsoftversion / power(2, 24) = 10)
|
||||||
|
AND (@@microsoftversion & 0xffff >= 1600))))
|
||||||
|
SELECT @VarDecimalSupported = 1;
|
||||||
|
|
||||||
|
IF (@VarDecimalSupported > 0)
|
||||||
|
BEGIN
|
||||||
|
EXECUTE sp_db_vardecimal_storage_format N'$(DatabaseName)', 'ON';
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
ALTER DATABASE [$(DatabaseName)]
|
||||||
|
SET MULTI_USER
|
||||||
|
WITH ROLLBACK IMMEDIATE;
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
|
PRINT N'업데이트가 완료되었습니다.';
|
||||||
|
|
||||||
|
|
||||||
|
GO
|
||||||
Binary file not shown.
Binary file not shown.
@ -5,10 +5,14 @@ VisualStudioVersion = 17.9.34728.123
|
|||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SystemX.Core", "SystemX.Core\SystemX.Core.csproj", "{F057A1E8-F5FF-4241-BEEA-1A57E971F379}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SystemX.Core", "SystemX.Core\SystemX.Core.csproj", "{F057A1E8-F5FF-4241-BEEA-1A57E971F379}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{00D1A9C2-B5F0-4AF3-8072-F6C62B433612}") = "SystemX.DB.AccountDB", "SystemX.DB.AccountDB\SystemX.DB.AccountDB.sqlproj", "{B44C85FA-BD31-419F-8481-477E166A5753}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SystemX.Core.DB", "SystemX.Core.DB\SystemX.Core.DB.csproj", "{78647721-F9BD-4876-89D5-95A2A0F3ADA7}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SystemX.Core.DB", "SystemX.Core.DB\SystemX.Core.DB.csproj", "{78647721-F9BD-4876-89D5-95A2A0F3ADA7}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DB", "DB", "{C8D5274F-AC00-46C7-1F8D-E88E81087A52}"
|
||||||
|
EndProject
|
||||||
|
Project("{00D1A9C2-B5F0-4AF3-8072-F6C62B433612}") = "SystemX.DB.AccountDB", "DB\SystemX.DB.AccountDB\SystemX.DB.AccountDB.sqlproj", "{B44C85FA-BD31-419F-8481-477E166A5753}"
|
||||||
|
EndProject
|
||||||
|
Project("{00D1A9C2-B5F0-4AF3-8072-F6C62B433612}") = "SystemX.DB.UniqueKeyDB", "DB\SystemX.DB.UniqueKeyDB\SystemX.DB.UniqueKeyDB.sqlproj", "{C67F3F97-1D52-4C75-A04F-16ED41822CCD}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
@ -19,20 +23,30 @@ Global
|
|||||||
{F057A1E8-F5FF-4241-BEEA-1A57E971F379}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{F057A1E8-F5FF-4241-BEEA-1A57E971F379}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{F057A1E8-F5FF-4241-BEEA-1A57E971F379}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{F057A1E8-F5FF-4241-BEEA-1A57E971F379}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{F057A1E8-F5FF-4241-BEEA-1A57E971F379}.Release|Any CPU.Build.0 = Release|Any CPU
|
{F057A1E8-F5FF-4241-BEEA-1A57E971F379}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{78647721-F9BD-4876-89D5-95A2A0F3ADA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{78647721-F9BD-4876-89D5-95A2A0F3ADA7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{78647721-F9BD-4876-89D5-95A2A0F3ADA7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{78647721-F9BD-4876-89D5-95A2A0F3ADA7}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{B44C85FA-BD31-419F-8481-477E166A5753}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{B44C85FA-BD31-419F-8481-477E166A5753}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{B44C85FA-BD31-419F-8481-477E166A5753}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{B44C85FA-BD31-419F-8481-477E166A5753}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{B44C85FA-BD31-419F-8481-477E166A5753}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
{B44C85FA-BD31-419F-8481-477E166A5753}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
||||||
{B44C85FA-BD31-419F-8481-477E166A5753}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{B44C85FA-BD31-419F-8481-477E166A5753}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{B44C85FA-BD31-419F-8481-477E166A5753}.Release|Any CPU.Build.0 = Release|Any CPU
|
{B44C85FA-BD31-419F-8481-477E166A5753}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{B44C85FA-BD31-419F-8481-477E166A5753}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
{B44C85FA-BD31-419F-8481-477E166A5753}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
||||||
{78647721-F9BD-4876-89D5-95A2A0F3ADA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{C67F3F97-1D52-4C75-A04F-16ED41822CCD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{78647721-F9BD-4876-89D5-95A2A0F3ADA7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{C67F3F97-1D52-4C75-A04F-16ED41822CCD}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{78647721-F9BD-4876-89D5-95A2A0F3ADA7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{C67F3F97-1D52-4C75-A04F-16ED41822CCD}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
||||||
{78647721-F9BD-4876-89D5-95A2A0F3ADA7}.Release|Any CPU.Build.0 = Release|Any CPU
|
{C67F3F97-1D52-4C75-A04F-16ED41822CCD}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{C67F3F97-1D52-4C75-A04F-16ED41822CCD}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{C67F3F97-1D52-4C75-A04F-16ED41822CCD}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
|
GlobalSection(NestedProjects) = preSolution
|
||||||
|
{B44C85FA-BD31-419F-8481-477E166A5753} = {C8D5274F-AC00-46C7-1F8D-E88E81087A52}
|
||||||
|
{C67F3F97-1D52-4C75-A04F-16ED41822CCD} = {C8D5274F-AC00-46C7-1F8D-E88E81087A52}
|
||||||
|
EndGlobalSection
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
SolutionGuid = {A26A3BD0-2161-41FA-949A-DEA966E8F798}
|
SolutionGuid = {A26A3BD0-2161-41FA-949A-DEA966E8F798}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
|
|||||||
3
Tools/sqlpackage_install.bat
Normal file
3
Tools/sqlpackage_install.bat
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
dotnet tool install -g microsoft.sqlpackage
|
||||||
|
|
||||||
|
pause
|
||||||
Reference in New Issue
Block a user