[성현모] VPKI 프로젝트 Import
This commit is contained in:
@ -0,0 +1,20 @@
|
||||
USE [master]
|
||||
GO
|
||||
|
||||
CREATE LOGIN [VPKI] WITH PASSWORD=N'Kefico!@34', DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[English], CHECK_POLICY=ON
|
||||
GO
|
||||
|
||||
ALTER LOGIN [VPKI] ENABLE
|
||||
GO
|
||||
|
||||
ALTER SERVER ROLE [sysadmin] ADD MEMBER [VPKI]
|
||||
GO
|
||||
|
||||
ALTER SERVER ROLE [securityadmin] ADD MEMBER [VPKI]
|
||||
GO
|
||||
|
||||
ALTER SERVER ROLE [serveradmin] ADD MEMBER [VPKI]
|
||||
GO
|
||||
|
||||
ALTER SERVER ROLE [setupadmin] ADD MEMBER [VPKI]
|
||||
GO
|
||||
@ -0,0 +1,365 @@
|
||||
/*
|
||||
VPKI.AccountDB의 배포 스크립트
|
||||
|
||||
이 코드는 도구를 사용하여 생성되었습니다.
|
||||
파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
|
||||
변경 내용이 손실됩니다.
|
||||
*/
|
||||
|
||||
GO
|
||||
SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON;
|
||||
|
||||
SET NUMERIC_ROUNDABORT OFF;
|
||||
|
||||
|
||||
GO
|
||||
/*
|
||||
:setvar DatabaseName "VPKI.AccountDB"
|
||||
:setvar DefaultFilePrefix "VPKI.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 SIMPLE,
|
||||
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
|
||||
-- 배포된 트랜잭션 로그를 사용하여 대상 서버를 업데이트하는 리팩터링 단계
|
||||
|
||||
IF OBJECT_ID(N'dbo.__RefactorLog') IS NULL
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[__RefactorLog] (OperationKey UNIQUEIDENTIFIER NOT NULL PRIMARY KEY)
|
||||
EXEC sp_addextendedproperty N'microsoft_database_tools_support', N'refactoring log', N'schema', N'dbo', N'table', N'__RefactorLog'
|
||||
END
|
||||
GO
|
||||
IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '7ca1fbc9-cead-4c01-b8df-1a9a69e13266')
|
||||
INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('7ca1fbc9-cead-4c01-b8df-1a9a69e13266')
|
||||
IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '7e3c9cab-1b27-43f3-8519-960704ce037b')
|
||||
INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('7e3c9cab-1b27-43f3-8519-960704ce037b')
|
||||
IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = 'f0511507-0a0d-4bde-a3b2-39b5106c85f0')
|
||||
INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('f0511507-0a0d-4bde-a3b2-39b5106c85f0')
|
||||
IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = 'da1fde46-473c-41bb-aa02-260e3385475d')
|
||||
INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('da1fde46-473c-41bb-aa02-260e3385475d')
|
||||
IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '8f767203-3e50-46b7-a513-53461cf358ac')
|
||||
INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('8f767203-3e50-46b7-a513-53461cf358ac')
|
||||
IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '4b1fa7eb-a0b5-425d-8358-7a8ca6cff7ad')
|
||||
INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('4b1fa7eb-a0b5-425d-8358-7a8ca6cff7ad')
|
||||
IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '5e298150-8e73-458c-aad7-8bf15975edc0')
|
||||
INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('5e298150-8e73-458c-aad7-8bf15975edc0')
|
||||
IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '6b49864f-05d3-40ae-9c55-b7845af2d49e')
|
||||
INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('6b49864f-05d3-40ae-9c55-b7845af2d49e')
|
||||
|
||||
GO
|
||||
|
||||
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', 'SuperUser' ,'oKLQCdunc2kT5aAVfK+POKwd8R3p8OZvs/NATwpg4gM=' ,1 ,GETDATE(), GETDATE());
|
||||
|
||||
INSERT INTO tRole(cAuid, cRoleID, cRoleName)
|
||||
VALUES ('SuperUser','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
|
||||
380
Projects/VPKI/VPKI.DB/DBPatch/sqlScripts/VPKI.DataDB_Create.sql
Normal file
380
Projects/VPKI/VPKI.DB/DBPatch/sqlScripts/VPKI.DataDB_Create.sql
Normal file
@ -0,0 +1,380 @@
|
||||
/*
|
||||
VPKI.DataDB의 배포 스크립트
|
||||
|
||||
이 코드는 도구를 사용하여 생성되었습니다.
|
||||
파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
|
||||
변경 내용이 손실됩니다.
|
||||
*/
|
||||
|
||||
GO
|
||||
SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON;
|
||||
|
||||
SET NUMERIC_ROUNDABORT OFF;
|
||||
|
||||
|
||||
GO
|
||||
/*
|
||||
:setvar DatabaseName "VPKI.DataDB"
|
||||
:setvar DefaultFilePrefix "VPKI.DataDB"
|
||||
: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 SIMPLE,
|
||||
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].[tVerifyResult]을(를) 만드는 중...';
|
||||
|
||||
|
||||
GO
|
||||
CREATE TABLE [dbo].[tVerifyResult] (
|
||||
[cCuid] BIGINT NOT NULL,
|
||||
[cResult] NCHAR (20) NOT NULL,
|
||||
PRIMARY KEY CLUSTERED ([cCuid] ASC)
|
||||
);
|
||||
|
||||
|
||||
GO
|
||||
PRINT N'테이블 [dbo].[tOcsp]을(를) 만드는 중...';
|
||||
|
||||
|
||||
GO
|
||||
CREATE TABLE [dbo].[tOcsp] (
|
||||
[cCuid] BIGINT NOT NULL,
|
||||
[cStatus] NVARCHAR (20) NOT NULL,
|
||||
[cVerify] NVARCHAR (20) NOT NULL,
|
||||
[cOcsp] NVARCHAR (MAX) NULL,
|
||||
[cDateTime] DATETIME2 (7) NOT NULL,
|
||||
PRIMARY KEY CLUSTERED ([cCuid] ASC)
|
||||
);
|
||||
|
||||
|
||||
GO
|
||||
PRINT N'테이블 [dbo].[tTbscsr]을(를) 만드는 중...';
|
||||
|
||||
|
||||
GO
|
||||
CREATE TABLE [dbo].[tTbscsr] (
|
||||
[cCuid] BIGINT IDENTITY (1, 1) NOT NULL,
|
||||
[cIftid] NVARCHAR (100) NOT NULL,
|
||||
[cMacaddr] NVARCHAR (100) NOT NULL,
|
||||
[cWmi] NVARCHAR (20) NOT NULL,
|
||||
[cIdType] NVARCHAR (10) NOT NULL,
|
||||
[cSupplierId] NVARCHAR (10) NOT NULL,
|
||||
[cDc] NVARCHAR (20) NOT NULL,
|
||||
[cTierCode] NVARCHAR (20) NOT NULL,
|
||||
[cUnitCode] NVARCHAR (20) NOT NULL,
|
||||
[cPublickey] NVARCHAR (1024) NOT NULL,
|
||||
[cCertType] NVARCHAR (20) NOT NULL,
|
||||
[cOriginTbscsr] NVARCHAR (4000) NOT NULL,
|
||||
[cHashedTbscsr] NVARCHAR (1024) NOT NULL,
|
||||
[cPcid] NVARCHAR (50) NOT NULL,
|
||||
[cDn] NVARCHAR (250) NOT NULL,
|
||||
[cDateTime] DATETIME2 (7) NOT NULL,
|
||||
PRIMARY KEY CLUSTERED ([cCuid] ASC)
|
||||
);
|
||||
|
||||
|
||||
GO
|
||||
PRINT N'테이블 [dbo].[tCertificate]을(를) 만드는 중...';
|
||||
|
||||
|
||||
GO
|
||||
CREATE TABLE [dbo].[tCertificate] (
|
||||
[cCuid] BIGINT NOT NULL,
|
||||
[cCsrsignature] NVARCHAR (1024) NOT NULL,
|
||||
[cTierCode] NVARCHAR (20) NOT NULL,
|
||||
[cUnitCode] NVARCHAR (20) NOT NULL,
|
||||
[cVehicleCode] NVARCHAR (20) NOT NULL,
|
||||
[cLocalCode] NVARCHAR (20) NOT NULL,
|
||||
[cBrandCode] NVARCHAR (20) NOT NULL,
|
||||
[cCsr] NVARCHAR (2048) NOT NULL,
|
||||
[cCert] NVARCHAR (2048) NOT NULL,
|
||||
[cMessage] NVARCHAR (250) NOT NULL,
|
||||
[cIssueCount] INT NOT NULL,
|
||||
[cDateTime] DATETIME2 (7) NOT NULL,
|
||||
PRIMARY KEY CLUSTERED ([cCuid] ASC)
|
||||
);
|
||||
|
||||
|
||||
GO
|
||||
-- 배포된 트랜잭션 로그를 사용하여 대상 서버를 업데이트하는 리팩터링 단계
|
||||
|
||||
IF OBJECT_ID(N'dbo.__RefactorLog') IS NULL
|
||||
BEGIN
|
||||
CREATE TABLE [dbo].[__RefactorLog] (OperationKey UNIQUEIDENTIFIER NOT NULL PRIMARY KEY)
|
||||
EXEC sp_addextendedproperty N'microsoft_database_tools_support', N'refactoring log', N'schema', N'dbo', N'table', N'__RefactorLog'
|
||||
END
|
||||
GO
|
||||
IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = 'aef5aa4e-a13d-46f1-b18e-e058c617b408')
|
||||
INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('aef5aa4e-a13d-46f1-b18e-e058c617b408')
|
||||
IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '648c532d-8e23-44f8-b657-11f87afbf718')
|
||||
INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('648c532d-8e23-44f8-b657-11f87afbf718')
|
||||
IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '9ee0544c-0be5-4023-8ef4-033987c586b8')
|
||||
INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('9ee0544c-0be5-4023-8ef4-033987c586b8')
|
||||
IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '88f4fb4b-2eb9-4f7f-a439-a365764395e2')
|
||||
INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('88f4fb4b-2eb9-4f7f-a439-a365764395e2')
|
||||
IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '5a0e9793-c50f-4b5b-8c05-283639a11124')
|
||||
INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('5a0e9793-c50f-4b5b-8c05-283639a11124')
|
||||
IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '3ba5afba-2388-4351-9e65-025f6cbe3c89')
|
||||
INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('3ba5afba-2388-4351-9e65-025f6cbe3c89')
|
||||
IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '98b90247-2504-4303-be66-2742a0bf0681')
|
||||
INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('98b90247-2504-4303-be66-2742a0bf0681')
|
||||
IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '8fa6e7d1-aa81-4b5d-afbe-2bbf9823e5e3')
|
||||
INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('8fa6e7d1-aa81-4b5d-afbe-2bbf9823e5e3')
|
||||
IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = '192ddc5c-7dab-4713-b486-4f0b3afb9817')
|
||||
INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('192ddc5c-7dab-4713-b486-4f0b3afb9817')
|
||||
IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = 'c7631cfd-d064-4fce-b44f-9df70e6cc41e')
|
||||
INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('c7631cfd-d064-4fce-b44f-9df70e6cc41e')
|
||||
|
||||
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
|
||||
195
Projects/VPKI/VPKI.DB/DBPatch/sqlScripts/VPKI.DataDB_Update.sql
Normal file
195
Projects/VPKI/VPKI.DB/DBPatch/sqlScripts/VPKI.DataDB_Update.sql
Normal file
@ -0,0 +1,195 @@
|
||||
/*
|
||||
VPKI_DataDB의 배포 스크립트
|
||||
|
||||
이 코드는 도구를 사용하여 생성되었습니다.
|
||||
파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
|
||||
변경 내용이 손실됩니다.
|
||||
*/
|
||||
|
||||
GO
|
||||
SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON;
|
||||
|
||||
SET NUMERIC_ROUNDABORT OFF;
|
||||
|
||||
|
||||
GO
|
||||
/*
|
||||
:setvar DatabaseName "VPKI_DataDB"
|
||||
:setvar DefaultFilePrefix "VPKI_DataDB"
|
||||
:setvar DefaultDataPath "D:\MSSQL\DATA\"
|
||||
:setvar DefaultLogPath "D:\MSSQL\DATA\"
|
||||
*/
|
||||
|
||||
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 [$(DatabaseName)];
|
||||
|
||||
|
||||
GO
|
||||
/*
|
||||
[dbo].[tCertificate].[cDn] 열이 삭제되므로 데이터 손실이 발생할 수 있습니다.
|
||||
|
||||
테이블 [dbo].[tCertificate]의 열 [[dbo].[tCertificate].[cCsrsignature]]을(를) 추가해야 하지만 해당 열에 기본값이 없으며 NULL 값을 허용하지 않습니다. 테이블에 데이터가 있으면 ALTER 스크립트가 실행되지 않습니다. 이러한 문제를 방지하려면 열에 기본값을 추가 및 해당 열을 NULL 값을 허용하도록 표시하거나 스마트 기본값을 배포 옵션으로서 생성할 수 있도록 하십시오.
|
||||
|
||||
[dbo].[tCertificate] 테이블의 cCert 열을 NULL에서 NOT NULL로 변경해야 합니다. 테이블에 데이터가 있으면 ALTER 스크립트가 실행되지 않습니다. 이러한 문제를 방지하려면 모든 행에 대해 이 열에 값을 추가 또는 해당 열을 NULL 값을 허용하도록 표시하거나 스마트 기본값을 배포 옵션으로서 생성할 수 있도록 하십시오.
|
||||
|
||||
[dbo].[tCertificate] 테이블의 cMessage 열을 NULL에서 NOT NULL로 변경해야 합니다. 테이블에 데이터가 있으면 ALTER 스크립트가 실행되지 않습니다. 이러한 문제를 방지하려면 모든 행에 대해 이 열에 값을 추가 또는 해당 열을 NULL 값을 허용하도록 표시하거나 스마트 기본값을 배포 옵션으로서 생성할 수 있도록 하십시오.
|
||||
*/
|
||||
|
||||
IF EXISTS (select top 1 1 from [dbo].[tCertificate])
|
||||
RAISERROR (N'행이 발견되었습니다. 데이터가 손실될 수 있으므로 스키마 업데이트가 종료됩니다.', 16, 127) WITH NOWAIT
|
||||
|
||||
GO
|
||||
/*
|
||||
[dbo].[tTbscsr].[cCsrsignature] 열이 삭제되므로 데이터 손실이 발생할 수 있습니다.
|
||||
|
||||
[dbo].[tTbscsr].[cTbscsrOrigin] 열이 삭제되므로 데이터 손실이 발생할 수 있습니다.
|
||||
|
||||
테이블 [dbo].[tTbscsr]의 열 [[dbo].[tTbscsr].[cDn]]을(를) 추가해야 하지만 해당 열에 기본값이 없으며 NULL 값을 허용하지 않습니다. 테이블에 데이터가 있으면 ALTER 스크립트가 실행되지 않습니다. 이러한 문제를 방지하려면 열에 기본값을 추가 및 해당 열을 NULL 값을 허용하도록 표시하거나 스마트 기본값을 배포 옵션으로서 생성할 수 있도록 하십시오.
|
||||
|
||||
테이블 [dbo].[tTbscsr]의 열 [[dbo].[tTbscsr].[cOriginTbscsr]]을(를) 추가해야 하지만 해당 열에 기본값이 없으며 NULL 값을 허용하지 않습니다. 테이블에 데이터가 있으면 ALTER 스크립트가 실행되지 않습니다. 이러한 문제를 방지하려면 열에 기본값을 추가 및 해당 열을 NULL 값을 허용하도록 표시하거나 스마트 기본값을 배포 옵션으로서 생성할 수 있도록 하십시오.
|
||||
*/
|
||||
|
||||
IF EXISTS (select top 1 1 from [dbo].[tTbscsr])
|
||||
RAISERROR (N'행이 발견되었습니다. 데이터가 손실될 수 있으므로 스키마 업데이트가 종료됩니다.', 16, 127) WITH NOWAIT
|
||||
|
||||
GO
|
||||
PRINT N'[dbo].[tCertificate] 테이블 다시 빌드 시작...';
|
||||
|
||||
|
||||
GO
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
|
||||
|
||||
SET XACT_ABORT ON;
|
||||
|
||||
CREATE TABLE [dbo].[tmp_ms_xx_tCertificate] (
|
||||
[cCuid] BIGINT NOT NULL,
|
||||
[cCsrsignature] NVARCHAR (1024) NOT NULL,
|
||||
[cTierCode] NVARCHAR (20) NOT NULL,
|
||||
[cUnitCode] NVARCHAR (20) NOT NULL,
|
||||
[cVehicleCode] NVARCHAR (20) NOT NULL,
|
||||
[cLocalCode] NVARCHAR (20) NOT NULL,
|
||||
[cBrandCode] NVARCHAR (20) NOT NULL,
|
||||
[cCsr] NVARCHAR (2048) NOT NULL,
|
||||
[cCert] NVARCHAR (2048) NOT NULL,
|
||||
[cMessage] NVARCHAR (250) NOT NULL,
|
||||
[cIssueCount] INT NOT NULL,
|
||||
[cDateTime] DATETIME2 (7) NOT NULL,
|
||||
PRIMARY KEY CLUSTERED ([cCuid] ASC)
|
||||
);
|
||||
|
||||
IF EXISTS (SELECT TOP 1 1
|
||||
FROM [dbo].[tCertificate])
|
||||
BEGIN
|
||||
INSERT INTO [dbo].[tmp_ms_xx_tCertificate] ([cCuid], [cCsr], [cTierCode], [cUnitCode], [cVehicleCode], [cLocalCode], [cBrandCode], [cCert], [cMessage], [cIssueCount], [cDateTime])
|
||||
SELECT [cCuid],
|
||||
[cCsr],
|
||||
[cTierCode],
|
||||
[cUnitCode],
|
||||
[cVehicleCode],
|
||||
[cLocalCode],
|
||||
[cBrandCode],
|
||||
[cCert],
|
||||
[cMessage],
|
||||
[cIssueCount],
|
||||
[cDateTime]
|
||||
FROM [dbo].[tCertificate]
|
||||
ORDER BY [cCuid] ASC;
|
||||
END
|
||||
|
||||
DROP TABLE [dbo].[tCertificate];
|
||||
|
||||
EXECUTE sp_rename N'[dbo].[tmp_ms_xx_tCertificate]', N'tCertificate';
|
||||
|
||||
COMMIT TRANSACTION;
|
||||
|
||||
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||
|
||||
|
||||
GO
|
||||
PRINT N'[dbo].[tTbscsr] 테이블 다시 빌드 시작...';
|
||||
|
||||
|
||||
GO
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
|
||||
|
||||
SET XACT_ABORT ON;
|
||||
|
||||
CREATE TABLE [dbo].[tmp_ms_xx_tTbscsr] (
|
||||
[cCuid] BIGINT IDENTITY (1, 1) NOT NULL,
|
||||
[cIftid] NVARCHAR (100) NOT NULL,
|
||||
[cMacaddr] NVARCHAR (100) NOT NULL,
|
||||
[cWmi] NVARCHAR (20) NOT NULL,
|
||||
[cIdType] NVARCHAR (10) NOT NULL,
|
||||
[cSupplierId] NVARCHAR (10) NOT NULL,
|
||||
[cDc] NVARCHAR (20) NOT NULL,
|
||||
[cTierCode] NVARCHAR (20) NOT NULL,
|
||||
[cUnitCode] NVARCHAR (20) NOT NULL,
|
||||
[cPublickey] NVARCHAR (1024) NOT NULL,
|
||||
[cCertType] NVARCHAR (20) NOT NULL,
|
||||
[cOriginTbscsr] NVARCHAR (4000) NOT NULL,
|
||||
[cHashedTbscsr] NVARCHAR (1024) NOT NULL,
|
||||
[cPcid] NVARCHAR (50) NOT NULL,
|
||||
[cDn] NVARCHAR (250) NOT NULL,
|
||||
[cDateTime] DATETIME2 (7) NOT NULL,
|
||||
PRIMARY KEY CLUSTERED ([cCuid] ASC)
|
||||
);
|
||||
|
||||
IF EXISTS (SELECT TOP 1 1
|
||||
FROM [dbo].[tTbscsr])
|
||||
BEGIN
|
||||
SET IDENTITY_INSERT [dbo].[tmp_ms_xx_tTbscsr] ON;
|
||||
INSERT INTO [dbo].[tmp_ms_xx_tTbscsr] ([cCuid], [cIftid], [cMacaddr], [cWmi], [cIdType], [cSupplierId], [cDc], [cTierCode], [cUnitCode], [cPublickey], [cCertType], [cHashedTbscsr], [cPcid], [cDateTime])
|
||||
SELECT [cCuid],
|
||||
[cIftid],
|
||||
[cMacaddr],
|
||||
[cWmi],
|
||||
[cIdType],
|
||||
[cSupplierId],
|
||||
[cDc],
|
||||
[cTierCode],
|
||||
[cUnitCode],
|
||||
[cPublickey],
|
||||
[cCertType],
|
||||
[cHashedTbscsr],
|
||||
[cPcid],
|
||||
[cDateTime]
|
||||
FROM [dbo].[tTbscsr]
|
||||
ORDER BY [cCuid] ASC;
|
||||
SET IDENTITY_INSERT [dbo].[tmp_ms_xx_tTbscsr] OFF;
|
||||
END
|
||||
|
||||
DROP TABLE [dbo].[tTbscsr];
|
||||
|
||||
EXECUTE sp_rename N'[dbo].[tmp_ms_xx_tTbscsr]', N'tTbscsr';
|
||||
|
||||
COMMIT TRANSACTION;
|
||||
|
||||
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||
|
||||
|
||||
GO
|
||||
PRINT N'업데이트가 완료되었습니다.';
|
||||
|
||||
|
||||
GO
|
||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user