[성현모] CPXV2, Log DB프로젝트, DB 컨텍스트 추가

This commit is contained in:
SHM
2025-08-29 09:52:19 +09:00
parent f1d466e17c
commit 0ff4843037
50 changed files with 2999 additions and 0 deletions

View File

@ -0,0 +1,21 @@
@echo off
CD ./sqlScripts/
::log
IF NOT EXIST .\logs mkdir logs
::DB 정의 스키마
SET Schema=SystemX.DB.CPXV2Log
::연결정보
SET ServerIP=127.0.0.1
SET ServerPort=1433
SET UserID=SystemX
SET Passwd=X
::Default DB
@echo off
::CALL _CreateDB.bat %Schema% %ServerIP% %ServerPort% %UserID% %Passwd% CPXV2LongTermLogJson_DEV
::CALL _CreateDB.bat %Schema% %ServerIP% %ServerPort% %UserID% %Passwd% CPXV2LongTermLogJson_3030
::CALL _CreateDB.bat %Schema% %ServerIP% %ServerPort% %UserID% %Passwd% CPXV2LongTermLogJson_3031
::CALL _CreateDB.bat %Schema% %ServerIP% %ServerPort% %UserID% %Passwd% CPXV2LongTermLogJson_3032

View File

@ -0,0 +1,19 @@
@echo off
CD ./sqlScripts/
::log
IF NOT EXIST .\logs mkdir logs
::DB 정의 스키마
SET Schema=SystemX.DB.CPXV2
::연결정보
SET ServerIP=127.0.0.1
SET ServerPort=1433
SET UserID=SystemX
SET Passwd=X
::Default DB
@echo off
::CALL _CreateDB.bat %Schema% %ServerIP% %ServerPort% %UserID% %Passwd% CPXV2
::CALL _CreateDB.bat %Schema% %ServerIP% %ServerPort% %UserID% %Passwd% CPXV2_DEV

View File

@ -0,0 +1,4 @@
::AccountDB
cd ../Projects/SystemX.Core/SystemX.Core.DB
dotnet ef dbcontext scaffold "server=127.0.0.1; user id=SystemX; password=X; database=CPXV2LongTermLogJson_DEV; TrustServerCertificate=true;" Microsoft.EntityFrameworkCore.SqlServer --namespace SystemX.Core.DB --context CPXV2Log --context-dir CPXV2Log\Context --output-dir CPXV2Log\Tables -f --use-database-names --no-onconfiguring

View File

@ -0,0 +1,4 @@
::AccountDB
cd ../Projects/SystemX.Core/SystemX.Core.DB
dotnet ef dbcontext scaffold "server=127.0.0.1; user id=SystemX; password=X; database=CPXV2_DEV; TrustServerCertificate=true;" Microsoft.EntityFrameworkCore.SqlServer --namespace SystemX.Core.DB --context CPXV2 --context-dir CPXV2\Context --output-dir CPXV2\Tables -f --use-database-names --no-onconfiguring

View File

@ -0,0 +1,568 @@
/*
SystemX.DB.CPXV2Log의 배포 스크립트
이 코드는 도구를 사용하여 생성되었습니다.
파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
변경 내용이 손실됩니다.
*/
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.CPXV2Log"
:setvar DefaultFilePrefix "SystemX.DB.CPXV2Log"
: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].[HIST_TestResult]을(를) 만드는 중...';
GO
CREATE TABLE [dbo].[HIST_TestResult] (
[No] BIGINT NOT NULL,
[TestDT] DATETIME2 (7) NULL,
[LogData] NVARCHAR (MAX) NOT NULL,
CONSTRAINT [PK_HIST_TestResult] PRIMARY KEY CLUSTERED ([No] ASC) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY];
GO
PRINT N'인덱스 [dbo].[HIST_TestResult].[HIST_TestResult_2]을(를) 만드는 중...';
GO
CREATE NONCLUSTERED INDEX [HIST_TestResult_2]
ON [dbo].[HIST_TestResult]([TestDT] ASC, [No] ASC)
ON [PRIMARY];
GO
PRINT N'인덱스 [dbo].[HIST_TestResult].[HIST_TestResult_3]을(를) 만드는 중...';
GO
CREATE NONCLUSTERED INDEX [HIST_TestResult_3]
ON [dbo].[HIST_TestResult]([TestDT] ASC)
ON [PRIMARY];
GO
PRINT N'테이블 [dbo].[HIST_LogSummary]을(를) 만드는 중...';
GO
CREATE TABLE [dbo].[HIST_LogSummary] (
[No] BIGINT IDENTITY (0, 1) NOT NULL,
[StationName] NVARCHAR (128) NULL,
[TestType] NVARCHAR (8) NOT NULL,
[Version] NVARCHAR (4) NOT NULL,
[ProdCode] NVARCHAR (4) NOT NULL,
[TestListFileNo] INT NULL,
[TestListVariantNo] INT NULL,
[TestListCntID] NVARCHAR (256) NULL,
[StepVersion] INT NULL,
[HostID] NVARCHAR (64) NOT NULL,
[Section] NVARCHAR (64) NOT NULL,
[ProdNo_C] NVARCHAR (32) NOT NULL,
[ProdNo_P] NVARCHAR (32) NOT NULL,
[Testcode] NVARCHAR (16) NOT NULL,
[TestListFileName] NVARCHAR (256) NOT NULL,
[ProductID] NVARCHAR (64) NOT NULL,
[Result] NVARCHAR (16) NOT NULL,
[Duration] NVARCHAR (16) NOT NULL,
[TestDT] DATETIME2 (7) NOT NULL,
CONSTRAINT [PK_HIST_LogSummary] PRIMARY KEY CLUSTERED ([No] ASC),
UNIQUE NONCLUSTERED ([No] ASC) ON [PRIMARY]
) ON [PRIMARY];
GO
PRINT N'인덱스 [dbo].[HIST_LogSummary].[HIST_LogSummary_2]을(를) 만드는 중...';
GO
CREATE NONCLUSTERED INDEX [HIST_LogSummary_2]
ON [dbo].[HIST_LogSummary]([TestDT] ASC, [No] ASC)
ON [PRIMARY];
GO
PRINT N'인덱스 [dbo].[HIST_LogSummary].[HIST_LogSummary_3]을(를) 만드는 중...';
GO
CREATE NONCLUSTERED INDEX [HIST_LogSummary_3]
ON [dbo].[HIST_LogSummary]([TestDT] ASC)
ON [PRIMARY];
GO
PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[HIST_TestResult]
ADD DEFAULT (getdate()) FOR [TestDT];
GO
PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[HIST_LogSummary]
ADD DEFAULT ('-') FOR [StationName];
GO
PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[HIST_LogSummary]
ADD DEFAULT ((-1)) FOR [TestListFileNo];
GO
PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[HIST_LogSummary]
ADD DEFAULT ((-1)) FOR [TestListVariantNo];
GO
PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[HIST_LogSummary]
ADD DEFAULT ((-1)) FOR [StepVersion];
GO
PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[HIST_LogSummary]
ADD DEFAULT (getdate()) FOR [TestDT];
GO
PRINT N'프로시저 [dbo].[spCreateTableMonth]을(를) 만드는 중...';
GO
CREATE PROCEDURE [dbo].[spCreateTableMonth]
AS
-- HIST_TestResult
DECLARE @current_yymm varchar(4) = CONVERT(CHAR(4), GETDATE(), 12)
DECLARE @current_summaryTableName varchar(40) = N'HIST_LogSummary_'+@current_yymm
DECLARE @current_summary_query varchar(200) = N' SELECT * INTO ' + @current_summaryTableName + N' FROM HIST_LogSummary'
IF NOT EXISTS(SELECT * FROM sys.tables WHERE NAME = @current_summaryTableName)
BEGIN
EXEC(@current_summary_query)
END
DECLARE @current_resultTableName varchar(40) = N'HIST_TestResult_'+@current_yymm
DECLARE @current_result_query varchar(200) = N' SELECT * INTO ' + @current_resultTableName + N' FROM HIST_TestResult'
IF NOT EXISTS(SELECT * FROM sys.tables WHERE NAME = @current_resultTableName)
BEGIN
EXEC(@current_result_query)
END
-- HIST_TestResult
DECLARE @next_yymm varchar(4) = CONVERT(CHAR(4), DATEADD(MONTH, 1, GETDATE()), 12)
DECLARE @next_summaryTableName varchar(40) = N'HIST_LogSummary_'+@next_yymm
DECLARE @next_summary_query varchar(200) = N' SELECT * INTO ' + @next_summaryTableName + N' FROM HIST_LogSummary'
IF NOT EXISTS(SELECT * FROM sys.tables WHERE NAME = @next_summaryTableName)
BEGIN
EXEC(@next_summary_query)
END
DECLARE @next_resultTableName varchar(40) = N'HIST_TestResult_'+@next_yymm
DECLARE @next_result_query varchar(200) = N' SELECT * INTO ' + @next_resultTableName + N' FROM HIST_TestResult'
IF NOT EXISTS(SELECT * FROM sys.tables WHERE NAME = @next_resultTableName)
BEGIN
EXEC(@next_result_query)
END
RETURN 0
GO
PRINT N'프로시저 [dbo].[spCreateTableByName]을(를) 만드는 중...';
GO
CREATE PROCEDURE [dbo].[spCreateTableByName]
@logSummaryTableName nvarchar(200),
@logResultTableName nvarchar(200)
AS
IF NOT EXISTS(SELECT * FROM sys.tables WHERE NAME = @logSummaryTableName)
BEGIN
DECLARE @summaryQuery nvarchar(4000)= N'
CREATE TABLE [dbo].['+@logSummaryTableName+'](
[No] [bigint] IDENTITY(0,1) NOT NULL,
[StationName] [nvarchar](128) NULL,
[TestType] [nvarchar](8) NOT NULL,
[Version] [nvarchar](4) NOT NULL,
[ProdCode] [nvarchar](4) NOT NULL,
[TestListFileNo] [int] NULL,
[TestListVariantNo] [int] NULL,
[TestListCntID] [nvarchar](256) NULL,
[StepVersion] [int] NULL,
[HostID] [nvarchar](64) NOT NULL,
[Section] [nvarchar](64) NOT NULL,
[ProdNo_C] [nvarchar](32) NOT NULL,
[ProdNo_P] [nvarchar](32) NOT NULL,
[Testcode] [nvarchar](16) NOT NULL,
[TestListFileName] [nvarchar](256) NOT NULL,
[ProductID] [nvarchar](64) NOT NULL,
[Result] [nvarchar](16) NOT NULL,
[Duration] [nvarchar](16) NOT NULL,
[TestDT] [datetime2](7) NOT NULL,
CONSTRAINT [PK_'+@logSummaryTableName+'] PRIMARY KEY CLUSTERED
(
[No] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY],
UNIQUE NONCLUSTERED
(
[No] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
ALTER TABLE [dbo].['+@logSummaryTableName+'] ADD DEFAULT (''-'') FOR [StationName]
ALTER TABLE [dbo].['+@logSummaryTableName+'] ADD DEFAULT ((-1)) FOR [TestListFileNo]
ALTER TABLE [dbo].['+@logSummaryTableName+'] ADD DEFAULT ((-1)) FOR [TestListVariantNo]
ALTER TABLE [dbo].['+@logSummaryTableName+'] ADD DEFAULT ((-1)) FOR [StepVersion]
ALTER TABLE [dbo].['+@logSummaryTableName+'] ADD DEFAULT (getdate()) FOR [TestDT]
CREATE INDEX ['+@logSummaryTableName+'_2] ON '+@logSummaryTableName+' (TestDT, No);
CREATE INDEX ['+@logSummaryTableName+'_3] ON '+@logSummaryTableName+' (TestDT);
';
EXEC(@summaryQuery)
END
IF NOT EXISTS(SELECT * FROM sys.tables WHERE NAME = @logResultTableName)
BEGIN
DECLARE @resultQuery nvarchar(4000)= N'
CREATE TABLE [dbo].['+@logResultTableName+'](
[No] [bigint] NOT NULL,
[TestDT] [datetime2](7) NULL,
[LogData] [nvarchar](max) NOT NULL,
CONSTRAINT [PK_'+@logResultTableName+'] PRIMARY KEY CLUSTERED
(
[No] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
ALTER TABLE [dbo].['+@logResultTableName+'] ADD DEFAULT (getdate()) FOR [TestDT]
CREATE INDEX ['+@logResultTableName+'_2] ON '+@logResultTableName+' (TestDT, No);
CREATE INDEX ['+@logResultTableName+'_3] ON '+@logResultTableName+' (TestDT);
';
EXEC(@resultQuery)
END
RETURN 0
GO
/*
배포 후 스크립트 템플릿
--------------------------------------------------------------------------------------
이 파일에는 빌드 스크립트에 추가될 SQL 문이 있습니다.
SQLCMD 구문을 사용하여 파일을 배포 후 스크립트에 포함합니다.
예: :r .\myfile.sql
SQLCMD 구문을 사용하여 배포 후 스크립트의 변수를 참조합니다.
예: :setvar TableName MyTable
SELECT * FROM [$(TableName)]
--------------------------------------------------------------------------------------
*/
/*10회 루프*/
DECLARE @CNT INT = 0;
DECLARE @MAX_CNT INT = 10
DECLARE @DBNAME varchar(50) = DB_NAME();
IF (@DBNAME LIKE '%short%')
BEGIN
WHILE(@CNT < @MAX_CNT)
BEGIN
DECLARE @yyyy varchar(4) = CONVERT(CHAR(4), DATEADD(YEAR, @CNT, GETDATE()), 23)
DECLARE @summary varchar(200) = N'HIST_LogSummary_'+@yyyy
DECLARE @result varchar(200) = N'HIST_TestResult_'+@yyyy
EXEC [dbo].[spCreateTableByName] @summary , @result
SET @CNT += 1
END
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

View File

@ -0,0 +1,821 @@
/*
SystemX.DB.CPXV2의 배포 스크립트
이 코드는 도구를 사용하여 생성되었습니다.
파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
변경 내용이 손실됩니다.
*/
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.CPXV2"
:setvar DefaultFilePrefix "SystemX.DB.CPXV2"
: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].[VRFY_TestListFileRelease]을(를) 만드는 중...';
GO
CREATE TABLE [dbo].[VRFY_TestListFileRelease] (
[No] BIGINT IDENTITY (0, 1) NOT NULL,
[TestListFileNo] INT NULL,
[StepID] BIGINT NOT NULL,
[Variant] NVARCHAR (32) NOT NULL,
[Gate] NVARCHAR (128) NOT NULL,
[Activate] BIT NULL,
[StepVersion] INT NOT NULL,
[Enable] BIT NULL,
[Position] BIGINT NULL,
[StepDesc] NVARCHAR (2048) NULL,
[UseFunction] NVARCHAR (2048) NOT NULL,
[MacroParm] NVARCHAR (2048) NULL,
[Parm] NVARCHAR (2048) NULL,
[SpecMin] NVARCHAR (2048) NOT NULL,
[SpecMax] NVARCHAR (2048) NOT NULL,
[IsGlobal] BIT NULL,
[Dim] NVARCHAR (64) NOT NULL,
[UpdateDT] DATETIME2 (7) NOT NULL,
PRIMARY KEY CLUSTERED ([No] ASC) ON [PRIMARY]
) ON [PRIMARY];
GO
PRINT N'인덱스 [dbo].[VRFY_TestListFileRelease].[CSK_VRFY_Release_2]을(를) 만드는 중...';
GO
CREATE NONCLUSTERED INDEX [CSK_VRFY_Release_2]
ON [dbo].[VRFY_TestListFileRelease]([TestListFileNo] ASC, [StepID] ASC, [Enable] ASC, [No] ASC)
ON [PRIMARY];
GO
PRINT N'테이블 [dbo].[STOR_TestListFile]을(를) 만드는 중...';
GO
CREATE TABLE [dbo].[STOR_TestListFile] (
[No] INT IDENTITY (0, 1) NOT NULL,
[Name] NVARCHAR (64) NOT NULL,
[TestType] NVARCHAR (8) NOT NULL,
[Version] NVARCHAR (4) NOT NULL,
[ProdCode] NVARCHAR (4) NOT NULL,
[FileName] NVARCHAR (64) NOT NULL,
[RegDT] DATETIME2 (7) NOT NULL,
[RegUser] NVARCHAR (32) NOT NULL,
[UpdateDT] DATETIME2 (7) NOT NULL,
[UpdateUser] NVARCHAR (32) NOT NULL,
[Comment] NVARCHAR (256) NULL,
[Description] NVARCHAR (256) NULL,
[TestListData] VARBINARY (MAX) NOT NULL,
PRIMARY KEY CLUSTERED ([No] ASC) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY];
GO
PRINT N'테이블 [dbo].[STAT_User]을(를) 만드는 중...';
GO
CREATE TABLE [dbo].[STAT_User] (
[No] INT IDENTITY (0, 1) NOT NULL,
[UserID] NVARCHAR (32) NOT NULL,
[Name] NVARCHAR (32) NOT NULL,
[Password] NVARCHAR (32) NOT NULL,
[Dept] NVARCHAR (64) NOT NULL,
[Email] NVARCHAR (64) NOT NULL,
[Comment] NVARCHAR (256) NULL,
[UpdateDT] DATETIME2 (7) NOT NULL,
PRIMARY KEY CLUSTERED ([No] ASC) ON [PRIMARY],
UNIQUE NONCLUSTERED ([UserID] ASC) ON [PRIMARY]
) ON [PRIMARY];
GO
PRINT N'테이블 [dbo].[STAT_TestCode]을(를) 만드는 중...';
GO
CREATE TABLE [dbo].[STAT_TestCode] (
[No] INT IDENTITY (0, 1) NOT NULL,
[TestCode] NVARCHAR (16) NOT NULL,
[Gate1] NVARCHAR (64) NOT NULL,
[Gate2] NVARCHAR (64) NOT NULL,
[Comment] NVARCHAR (256) NULL,
PRIMARY KEY CLUSTERED ([No] ASC) ON [PRIMARY],
UNIQUE NONCLUSTERED ([TestCode] ASC) ON [PRIMARY]
) ON [PRIMARY];
GO
PRINT N'테이블 [dbo].[STAT_Host]을(를) 만드는 중...';
GO
CREATE TABLE [dbo].[STAT_Host] (
[No] INT IDENTITY (0, 1) NOT NULL,
[HostID] NVARCHAR (64) NOT NULL,
[Section] NVARCHAR (64) NOT NULL,
[IP] NVARCHAR (15) NOT NULL,
[TestCode] NVARCHAR (16) NULL,
[Comment] NVARCHAR (256) NULL,
[UpdateDT] DATETIME2 (7) NOT NULL,
PRIMARY KEY CLUSTERED ([No] ASC) ON [PRIMARY]
) ON [PRIMARY];
GO
PRINT N'테이블 [dbo].[PROD_Variant]을(를) 만드는 중...';
GO
CREATE TABLE [dbo].[PROD_Variant] (
[No] INT IDENTITY (0, 1) NOT NULL,
[ProdNo_P] NVARCHAR (32) NOT NULL,
[RegDT] DATETIME2 (7) NOT NULL,
[RegUser] NVARCHAR (32) NOT NULL,
[UpdateDT] DATETIME2 (7) NOT NULL,
[UpdateUser] NVARCHAR (32) NOT NULL,
[GroupNo] INT NULL,
[Comment] NVARCHAR (256) NULL,
[Description] NVARCHAR (256) NULL,
[TestListFileNo] INT NULL,
[UseTLPosition] INT NOT NULL,
[IsUse] BIT NOT NULL,
PRIMARY KEY CLUSTERED ([No] ASC) ON [PRIMARY]
) ON [PRIMARY];
GO
PRINT N'테이블 [dbo].[PROD_Release]을(를) 만드는 중...';
GO
CREATE TABLE [dbo].[PROD_Release] (
[No] INT IDENTITY (0, 1) NOT NULL,
[ProdNo_C] NVARCHAR (32) NOT NULL,
[TestCodeNo] INT NULL,
[VariantNo] INT NULL,
[Config] NVARCHAR (32) NOT NULL,
[RegDT] DATETIME2 (7) NOT NULL,
[RegUser] NVARCHAR (32) NOT NULL,
[RegUserComment] NVARCHAR (256) NULL,
PRIMARY KEY CLUSTERED ([No] ASC) ON [PRIMARY]
) ON [PRIMARY];
GO
PRINT N'테이블 [dbo].[PROD_Group]을(를) 만드는 중...';
GO
CREATE TABLE [dbo].[PROD_Group] (
[No] INT IDENTITY (0, 1) NOT NULL,
[GroupName] NVARCHAR (128) NOT NULL,
[ModelName] NVARCHAR (128) NOT NULL,
[Comment] NVARCHAR (256) NULL,
PRIMARY KEY CLUSTERED ([No] ASC) ON [PRIMARY],
UNIQUE NONCLUSTERED ([ModelName] ASC) ON [PRIMARY]
) ON [PRIMARY];
GO
PRINT N'테이블 [dbo].[HIST_TestListFileVariantList]을(를) 만드는 중...';
GO
CREATE TABLE [dbo].[HIST_TestListFileVariantList] (
[No] BIGINT IDENTITY (0, 1) NOT NULL,
[TestListFileNo] INT NULL,
[VariantList] NVARCHAR (2048) NULL,
PRIMARY KEY CLUSTERED ([No] ASC) ON [PRIMARY]
) ON [PRIMARY];
GO
PRINT N'인덱스 [dbo].[HIST_TestListFileVariantList].[CSK_HIST_TestListFileVariantList_2]을(를) 만드는 중...';
GO
CREATE NONCLUSTERED INDEX [CSK_HIST_TestListFileVariantList_2]
ON [dbo].[HIST_TestListFileVariantList]([TestListFileNo] ASC, [No] ASC)
ON [PRIMARY];
GO
PRINT N'테이블 [dbo].[HIST_TestListFileLatestStepVersion]을(를) 만드는 중...';
GO
CREATE TABLE [dbo].[HIST_TestListFileLatestStepVersion] (
[No] BIGINT IDENTITY (0, 1) NOT NULL,
[TestListFileNo] INT NULL,
[LatestStepVersion] INT NOT NULL,
PRIMARY KEY CLUSTERED ([No] ASC) ON [PRIMARY]
) ON [PRIMARY];
GO
PRINT N'테이블 [dbo].[HIST_TestListFile]을(를) 만드는 중...';
GO
CREATE TABLE [dbo].[HIST_TestListFile] (
[No] BIGINT IDENTITY (0, 1) NOT NULL,
[TestListFileNo] INT NULL,
[Name] NVARCHAR (64) NOT NULL,
[TestListData1] VARBINARY (MAX) NULL,
[TestListData2] VARBINARY (MAX) NULL,
[TestListData3] VARBINARY (MAX) NULL,
[TestListData4] VARBINARY (MAX) NULL,
[TestListData5] VARBINARY (MAX) NULL,
[TestListData6] VARBINARY (MAX) NULL,
[TestListData7] VARBINARY (MAX) NULL,
[TestListData8] VARBINARY (MAX) NULL,
[TestListData9] VARBINARY (MAX) NULL,
[TestListData10] VARBINARY (MAX) NULL,
PRIMARY KEY CLUSTERED ([No] ASC) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY];
GO
PRINT N'인덱스 [dbo].[HIST_TestListFile].[CSK_HIST_TestList_2]을(를) 만드는 중...';
GO
CREATE NONCLUSTERED INDEX [CSK_HIST_TestList_2]
ON [dbo].[HIST_TestListFile]([TestListFileNo] ASC, [Name] ASC, [No] ASC)
ON [PRIMARY];
GO
PRINT N'테이블 [dbo].[HIST_TesterSummary]을(를) 만드는 중...';
GO
CREATE TABLE [dbo].[HIST_TesterSummary] (
[No] BIGINT IDENTITY (0, 1) NOT NULL,
[StationName] NVARCHAR (128) NULL,
[TestType] NVARCHAR (8) NOT NULL,
[Version] NVARCHAR (4) NOT NULL,
[ProdCode] NVARCHAR (4) NOT NULL,
[TestListFileNo] INT NULL,
[TestListVariantNo] INT NULL,
[TestListCntID] NVARCHAR (256) NULL,
[StepVersion] INT NULL,
[HostID] NVARCHAR (64) NOT NULL,
[Section] NVARCHAR (64) NOT NULL,
[ProdNo_C] NVARCHAR (32) NOT NULL,
[ProdNo_P] NVARCHAR (32) NOT NULL,
[Testcode] NVARCHAR (16) NOT NULL,
[TestListFileName] NVARCHAR (256) NOT NULL,
[ProductID] NVARCHAR (64) NOT NULL,
[Result] NVARCHAR (16) NOT NULL,
[Duration] NVARCHAR (16) NOT NULL,
[TestDT] DATETIME2 (7) NOT NULL,
UNIQUE NONCLUSTERED ([No] ASC) ON [PRIMARY]
) ON [PRIMARY];
GO
PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[VRFY_TestListFileRelease]
ADD DEFAULT ((1)) FOR [Activate];
GO
PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[VRFY_TestListFileRelease]
ADD DEFAULT ((1)) FOR [Enable];
GO
PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[VRFY_TestListFileRelease]
ADD DEFAULT ('') FOR [StepDesc];
GO
PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[VRFY_TestListFileRelease]
ADD DEFAULT ((0)) FOR [IsGlobal];
GO
PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[VRFY_TestListFileRelease]
ADD DEFAULT (getdate()) FOR [UpdateDT];
GO
PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[STOR_TestListFile]
ADD DEFAULT (getdate()) FOR [RegDT];
GO
PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[STOR_TestListFile]
ADD DEFAULT (getdate()) FOR [UpdateDT];
GO
PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[STAT_User]
ADD DEFAULT (getdate()) FOR [UpdateDT];
GO
PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[STAT_Host]
ADD DEFAULT (getdate()) FOR [UpdateDT];
GO
PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[PROD_Variant]
ADD DEFAULT (getdate()) FOR [RegDT];
GO
PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[PROD_Variant]
ADD DEFAULT (getdate()) FOR [UpdateDT];
GO
PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[PROD_Variant]
ADD DEFAULT ((0)) FOR [UseTLPosition];
GO
PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[PROD_Variant]
ADD DEFAULT ((1)) FOR [IsUse];
GO
PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[PROD_Release]
ADD DEFAULT (getdate()) FOR [RegDT];
GO
PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[HIST_TesterSummary]
ADD DEFAULT ('-') FOR [StationName];
GO
PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[HIST_TesterSummary]
ADD DEFAULT ((-1)) FOR [TestListFileNo];
GO
PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[HIST_TesterSummary]
ADD DEFAULT ((-1)) FOR [TestListVariantNo];
GO
PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[HIST_TesterSummary]
ADD DEFAULT ((-1)) FOR [StepVersion];
GO
PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[HIST_TesterSummary]
ADD DEFAULT (getdate()) FOR [TestDT];
GO
PRINT N'외래 키 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[VRFY_TestListFileRelease]
ADD FOREIGN KEY ([TestListFileNo]) REFERENCES [dbo].[STOR_TestListFile] ([No]) ON DELETE SET NULL;
GO
PRINT N'외래 키 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[PROD_Variant]
ADD FOREIGN KEY ([GroupNo]) REFERENCES [dbo].[PROD_Group] ([No]) ON DELETE SET NULL;
GO
PRINT N'외래 키 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[PROD_Variant]
ADD FOREIGN KEY ([TestListFileNo]) REFERENCES [dbo].[STOR_TestListFile] ([No]) ON DELETE SET NULL;
GO
PRINT N'외래 키 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[PROD_Release]
ADD FOREIGN KEY ([TestCodeNo]) REFERENCES [dbo].[STAT_TestCode] ([No]) ON DELETE SET NULL;
GO
PRINT N'외래 키 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[PROD_Release]
ADD FOREIGN KEY ([VariantNo]) REFERENCES [dbo].[PROD_Variant] ([No]) ON DELETE SET NULL;
GO
PRINT N'외래 키 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[HIST_TestListFileVariantList]
ADD FOREIGN KEY ([TestListFileNo]) REFERENCES [dbo].[STOR_TestListFile] ([No]) ON DELETE SET NULL;
GO
PRINT N'외래 키 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[HIST_TestListFileLatestStepVersion]
ADD FOREIGN KEY ([TestListFileNo]) REFERENCES [dbo].[STOR_TestListFile] ([No]) ON DELETE SET NULL;
GO
PRINT N'외래 키 <이름 없음>을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[HIST_TestListFile]
ADD FOREIGN KEY ([TestListFileNo]) REFERENCES [dbo].[STOR_TestListFile] ([No]) ON DELETE SET NULL;
GO
PRINT N'CHECK 제약 조건 [dbo].[CK_PROD_TestList_UseTLPosition_2]을(를) 만드는 중...';
GO
ALTER TABLE [dbo].[PROD_Variant]
ADD CONSTRAINT [CK_PROD_TestList_UseTLPosition_2] CHECK (([UseTLPosition]>=(0) AND [UseTLPosition]<=(10)));
GO
PRINT N'프로시저 [dbo].[spGetDBList]을(를) 만드는 중...';
GO
CREATE PROCEDURE [dbo].[spGetDBList]
AS
SELECT name FROM SYS.DATABASES WHERE name LIKE '%CPXV%'
RETURN 0
GO
/*
배포 후 스크립트 템플릿
--------------------------------------------------------------------------------------
이 파일에는 빌드 스크립트에 추가될 SQL 문이 있습니다.
SQLCMD 구문을 사용하여 파일을 배포 후 스크립트에 포함합니다.
예: :r .\myfile.sql
SQLCMD 구문을 사용하여 배포 후 스크립트의 변수를 참조합니다.
예: :setvar TableName MyTable
SELECT * FROM [$(TableName)]
--------------------------------------------------------------------------------------
*/
--CPXV2 STAT_User
INSERT INTO STAT_User (UserID, Name, Password, Dept, Email, Comment) VALUES ('Admin', 'Admin', 'Kefico!@34', 'Admin', 'systemx2051@gmail.com', 'Administrator');
GO
INSERT INTO STAT_User (UserID, Name, Password, Dept, Email, Comment) VALUES ('SystemX', 'SystemX', 'Kefico!@34', 'SystemX', 'systemx2051@gmail.com', 'SystemX');
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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,89 @@
<?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.CPXV2</Name>
<SchemaVersion>2.0</SchemaVersion>
<ProjectVersion>4.1</ProjectVersion>
<ProjectGuid>{3a2d7552-9c12-489f-8a0b-330e000c860d}</ProjectGuid>
<DSP>Microsoft.Data.Tools.Schema.Sql.Sql160DatabaseSchemaProvider</DSP>
<OutputType>Database</OutputType>
<RootPath>
</RootPath>
<RootNamespace>SystemX.DB.CPXV2</RootNamespace>
<AssemblyName>SystemX.DB.CPXV2</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>false</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\Tables" />
<Folder Include="dbo\SotredProcedures" />
<Folder Include="dbo\Scripts" />
</ItemGroup>
<ItemGroup>
<Build Include="dbo\SotredProcedures\spGetDBList.sql" />
<Build Include="dbo\Tables\HIST_TesterSummary.sql" />
<Build Include="dbo\Tables\HIST_TestListFile.sql" />
<Build Include="dbo\Tables\HIST_TestListFileLatestStepVersion.sql" />
<Build Include="dbo\Tables\HIST_TestListFileVariantList.sql" />
<Build Include="dbo\Tables\PROD_Group.sql" />
<Build Include="dbo\Tables\PROD_Release.sql" />
<Build Include="dbo\Tables\PROD_Variant.sql" />
<Build Include="dbo\Tables\STAT_Host.sql" />
<Build Include="dbo\Tables\STAT_TestCode.sql" />
<Build Include="dbo\Tables\STAT_User.sql" />
<Build Include="dbo\Tables\STOR_TestListFile.sql" />
<Build Include="dbo\Tables\VRFY_TestListFileRelease.sql" />
</ItemGroup>
<ItemGroup>
<PostDeploy Include="dbo\Scripts\scriptAfterBuild.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>

View File

@ -0,0 +1,18 @@
/*
배포 후 스크립트 템플릿
--------------------------------------------------------------------------------------
이 파일에는 빌드 스크립트에 추가될 SQL 문이 있습니다.
SQLCMD 구문을 사용하여 파일을 배포 후 스크립트에 포함합니다.
예: :r .\myfile.sql
SQLCMD 구문을 사용하여 배포 후 스크립트의 변수를 참조합니다.
예: :setvar TableName MyTable
SELECT * FROM [$(TableName)]
--------------------------------------------------------------------------------------
*/
--CPXV2 STAT_User
INSERT INTO STAT_User (UserID, Name, Password, Dept, Email, Comment) VALUES ('Admin', 'Admin', 'Kefico!@34', 'Admin', 'systemx2051@gmail.com', 'Administrator');
GO
INSERT INTO STAT_User (UserID, Name, Password, Dept, Email, Comment) VALUES ('SystemX', 'SystemX', 'Kefico!@34', 'SystemX', 'systemx2051@gmail.com', 'SystemX');
GO

View File

@ -0,0 +1,5 @@
CREATE PROCEDURE [dbo].[spGetDBList]
AS
SELECT name FROM SYS.DATABASES WHERE name LIKE '%CPXV%'
RETURN 0

View File

@ -0,0 +1,28 @@
CREATE TABLE [dbo].[HIST_TestListFile](
[No] [bigint] IDENTITY(0,1) NOT NULL,
[TestListFileNo] [int] NULL,
[Name] [nvarchar](64) NOT NULL,
[TestListData1] [varbinary](max) NULL,
[TestListData2] [varbinary](max) NULL,
[TestListData3] [varbinary](max) NULL,
[TestListData4] [varbinary](max) NULL,
[TestListData5] [varbinary](max) NULL,
[TestListData6] [varbinary](max) NULL,
[TestListData7] [varbinary](max) NULL,
[TestListData8] [varbinary](max) NULL,
[TestListData9] [varbinary](max) NULL,
[TestListData10] [varbinary](max) NULL,
PRIMARY KEY CLUSTERED
(
[No] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[HIST_TestListFile] WITH CHECK ADD FOREIGN KEY([TestListFileNo])
REFERENCES [dbo].[STOR_TestListFile] ([No])
ON DELETE SET NULL
GO
CREATE INDEX [CSK_HIST_TestList_2] ON HIST_TestListFile (TestListFileNo, Name, No);
GO

View File

@ -0,0 +1,17 @@
CREATE TABLE [dbo].[HIST_TestListFileLatestStepVersion](
[No] [bigint] IDENTITY(0,1) NOT NULL,
[TestListFileNo] [int] NULL,
[LatestStepVersion] [int] NOT NULL,
PRIMARY KEY CLUSTERED
(
[No] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[HIST_TestListFileLatestStepVersion] WITH CHECK ADD FOREIGN KEY([TestListFileNo])
REFERENCES [dbo].[STOR_TestListFile] ([No])
ON DELETE SET NULL
GO

View File

@ -0,0 +1,18 @@
CREATE TABLE [dbo].[HIST_TestListFileVariantList](
[No] [bigint] IDENTITY(0,1) NOT NULL,
[TestListFileNo] [int] NULL,
[VariantList] [nvarchar](2048) NULL,
PRIMARY KEY CLUSTERED
(
[No] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[HIST_TestListFileVariantList] WITH CHECK ADD FOREIGN KEY([TestListFileNo])
REFERENCES [dbo].[STOR_TestListFile] ([No])
ON DELETE SET NULL
GO
CREATE INDEX [CSK_HIST_TestListFileVariantList_2] ON HIST_TestListFileVariantList (TestListFileNo, No);
GO

View File

@ -0,0 +1,43 @@
CREATE TABLE [dbo].[HIST_TesterSummary](
[No] [bigint] IDENTITY(0,1) NOT NULL,
[StationName] [nvarchar](128) NULL,
[TestType] [nvarchar](8) NOT NULL,
[Version] [nvarchar](4) NOT NULL,
[ProdCode] [nvarchar](4) NOT NULL,
[TestListFileNo] [int] NULL,
[TestListVariantNo] [int] NULL,
[TestListCntID] [nvarchar](256) NULL,
[StepVersion] [int] NULL,
[HostID] [nvarchar](64) NOT NULL,
[Section] [nvarchar](64) NOT NULL,
[ProdNo_C] [nvarchar](32) NOT NULL,
[ProdNo_P] [nvarchar](32) NOT NULL,
[Testcode] [nvarchar](16) NOT NULL,
[TestListFileName] [nvarchar](256) NOT NULL,
[ProductID] [nvarchar](64) NOT NULL,
[Result] [nvarchar](16) NOT NULL,
[Duration] [nvarchar](16) NOT NULL,
[TestDT] [datetime2](7) NOT NULL,
UNIQUE NONCLUSTERED
(
[No] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[HIST_TesterSummary] ADD DEFAULT ('-') FOR [StationName]
GO
ALTER TABLE [dbo].[HIST_TesterSummary] ADD DEFAULT ((-1)) FOR [TestListFileNo]
GO
ALTER TABLE [dbo].[HIST_TesterSummary] ADD DEFAULT ((-1)) FOR [TestListVariantNo]
GO
ALTER TABLE [dbo].[HIST_TesterSummary] ADD DEFAULT ((-1)) FOR [StepVersion]
GO
ALTER TABLE [dbo].[HIST_TesterSummary] ADD DEFAULT (getdate()) FOR [TestDT]
GO

View File

@ -0,0 +1,17 @@
CREATE TABLE [dbo].[PROD_Group](
[No] [int] IDENTITY(0,1) NOT NULL,
[GroupName] [nvarchar](128) NOT NULL,
[ModelName] [nvarchar](128) NOT NULL,
[Comment] [nvarchar](256) NULL,
PRIMARY KEY CLUSTERED
(
[No] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY],
UNIQUE NONCLUSTERED
(
[ModelName] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

View File

@ -0,0 +1,30 @@
CREATE TABLE [dbo].[PROD_Release](
[No] [int] IDENTITY(0,1) NOT NULL,
[ProdNo_C] [nvarchar](32) NOT NULL,
[TestCodeNo] [int] NULL,
[VariantNo] [int] NULL,
[Config] [nvarchar](32) NOT NULL,
[RegDT] [datetime2](7) NOT NULL,
[RegUser] [nvarchar](32) NOT NULL,
[RegUserComment] [nvarchar](256) NULL,
PRIMARY KEY CLUSTERED
(
[No] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[PROD_Release] ADD DEFAULT (getdate()) FOR [RegDT]
GO
ALTER TABLE [dbo].[PROD_Release] WITH CHECK ADD FOREIGN KEY([TestCodeNo])
REFERENCES [dbo].[STAT_TestCode] ([No])
ON DELETE SET NULL
GO
ALTER TABLE [dbo].[PROD_Release] WITH CHECK ADD FOREIGN KEY([VariantNo])
REFERENCES [dbo].[PROD_Variant] ([No])
ON DELETE SET NULL
GO

View File

@ -0,0 +1,49 @@
CREATE TABLE [dbo].[PROD_Variant](
[No] [int] IDENTITY(0,1) NOT NULL,
[ProdNo_P] [nvarchar](32) NOT NULL,
[RegDT] [datetime2](7) NOT NULL,
[RegUser] [nvarchar](32) NOT NULL,
[UpdateDT] [datetime2](7) NOT NULL,
[UpdateUser] [nvarchar](32) NOT NULL,
[GroupNo] [int] NULL,
[Comment] [nvarchar](256) NULL,
[Description] [nvarchar](256) NULL,
[TestListFileNo] [int] NULL,
[UseTLPosition] [int] NOT NULL,
[IsUse] [bit] NOT NULL,
PRIMARY KEY CLUSTERED
(
[No] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[PROD_Variant] ADD DEFAULT (getdate()) FOR [RegDT]
GO
ALTER TABLE [dbo].[PROD_Variant] ADD DEFAULT (getdate()) FOR [UpdateDT]
GO
ALTER TABLE [dbo].[PROD_Variant] ADD DEFAULT ((0)) FOR [UseTLPosition]
GO
ALTER TABLE [dbo].[PROD_Variant] ADD DEFAULT ((1)) FOR [IsUse]
GO
ALTER TABLE [dbo].[PROD_Variant] WITH CHECK ADD FOREIGN KEY([GroupNo])
REFERENCES [dbo].[PROD_Group] ([No])
ON DELETE SET NULL
GO
ALTER TABLE [dbo].[PROD_Variant] WITH CHECK ADD FOREIGN KEY([TestListFileNo])
REFERENCES [dbo].[STOR_TestListFile] ([No])
ON DELETE SET NULL
GO
ALTER TABLE [dbo].[PROD_Variant] WITH CHECK ADD CONSTRAINT [CK_PROD_TestList_UseTLPosition_2] CHECK (([UseTLPosition]>=(0) AND [UseTLPosition]<=(10)))
GO
ALTER TABLE [dbo].[PROD_Variant] CHECK CONSTRAINT [CK_PROD_TestList_UseTLPosition_2]
GO

View File

@ -0,0 +1,19 @@
CREATE TABLE [dbo].[STAT_Host](
[No] [int] IDENTITY(0,1) NOT NULL,
[HostID] [nvarchar](64) NOT NULL,
[Section] [nvarchar](64) NOT NULL,
[IP] [nvarchar](15) NOT NULL,
[TestCode] [nvarchar](16) NULL,
[Comment] [nvarchar](256) NULL,
[UpdateDT] [datetime2](7) NOT NULL,
PRIMARY KEY CLUSTERED
(
[No] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[STAT_Host] ADD DEFAULT (getdate()) FOR [UpdateDT]
GO

View File

@ -0,0 +1,18 @@
CREATE TABLE [dbo].[STAT_TestCode](
[No] [int] IDENTITY(0,1) NOT NULL,
[TestCode] [nvarchar](16) NOT NULL,
[Gate1] [nvarchar](64) NOT NULL,
[Gate2] [nvarchar](64) NOT NULL,
[Comment] [nvarchar](256) NULL,
PRIMARY KEY CLUSTERED
(
[No] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY],
UNIQUE NONCLUSTERED
(
[TestCode] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

View File

@ -0,0 +1,24 @@
CREATE TABLE [dbo].[STAT_User](
[No] [int] IDENTITY(0,1) NOT NULL,
[UserID] [nvarchar](32) NOT NULL,
[Name] [nvarchar](32) NOT NULL,
[Password] [nvarchar](32) NOT NULL,
[Dept] [nvarchar](64) NOT NULL,
[Email] [nvarchar](64) NOT NULL,
[Comment] [nvarchar](256) NULL,
[UpdateDT] [datetime2](7) NOT NULL,
PRIMARY KEY CLUSTERED
(
[No] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY],
UNIQUE NONCLUSTERED
(
[UserID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[STAT_User] ADD DEFAULT (getdate()) FOR [UpdateDT]
GO

View File

@ -0,0 +1,28 @@
CREATE TABLE [dbo].[STOR_TestListFile](
[No] [int] IDENTITY(0,1) NOT NULL,
[Name] [nvarchar](64) NOT NULL,
[TestType] [nvarchar](8) NOT NULL,
[Version] [nvarchar](4) NOT NULL,
[ProdCode] [nvarchar](4) NOT NULL,
[FileName] [nvarchar](64) NOT NULL,
[RegDT] [datetime2](7) NOT NULL,
[RegUser] [nvarchar](32) NOT NULL,
[UpdateDT] [datetime2](7) NOT NULL,
[UpdateUser] [nvarchar](32) NOT NULL,
[Comment] [nvarchar](256) NULL,
[Description] [nvarchar](256) NULL,
[TestListData] [varbinary](max) NOT NULL,
PRIMARY KEY CLUSTERED
(
[No] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[STOR_TestListFile] ADD DEFAULT (getdate()) FOR [RegDT]
GO
ALTER TABLE [dbo].[STOR_TestListFile] ADD DEFAULT (getdate()) FOR [UpdateDT]
GO

View File

@ -0,0 +1,48 @@
CREATE TABLE [dbo].[VRFY_TestListFileRelease](
[No] [bigint] IDENTITY(0,1) NOT NULL,
[TestListFileNo] [int] NULL,
[StepID] [bigint] NOT NULL,
[Variant] [nvarchar](32) NOT NULL,
[Gate] [nvarchar](128) NOT NULL,
[Activate] [bit] NULL,
[StepVersion] [int] NOT NULL,
[Enable] [bit] NULL,
[Position] [bigint] NULL,
[StepDesc] [nvarchar](2048) NULL,
[UseFunction] [nvarchar](2048) NOT NULL,
[MacroParm] [nvarchar](2048) NULL,
[Parm] [nvarchar](2048) NULL,
[SpecMin] [nvarchar](2048) NOT NULL,
[SpecMax] [nvarchar](2048) NOT NULL,
[IsGlobal] [bit] NULL,
[Dim] [nvarchar](64) NOT NULL,
[UpdateDT] [datetime2](7) NOT NULL,
PRIMARY KEY CLUSTERED
(
[No] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[VRFY_TestListFileRelease] ADD DEFAULT ((1)) FOR [Activate]
GO
ALTER TABLE [dbo].[VRFY_TestListFileRelease] ADD DEFAULT ((1)) FOR [Enable]
GO
ALTER TABLE [dbo].[VRFY_TestListFileRelease] ADD DEFAULT ('') FOR [StepDesc]
GO
ALTER TABLE [dbo].[VRFY_TestListFileRelease] ADD DEFAULT ((0)) FOR [IsGlobal]
GO
ALTER TABLE [dbo].[VRFY_TestListFileRelease] ADD DEFAULT (getdate()) FOR [UpdateDT]
GO
ALTER TABLE [dbo].[VRFY_TestListFileRelease] WITH NOCHECK ADD FOREIGN KEY([TestListFileNo])
REFERENCES [dbo].[STOR_TestListFile] ([No])
ON DELETE SET NULL
GO
CREATE INDEX [CSK_VRFY_Release_2] ON VRFY_TestListFileRelease (TestListFileNo, StepID, Enable, No);
GO

View File

@ -0,0 +1,82 @@
<?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.CPXV2Log</Name>
<SchemaVersion>2.0</SchemaVersion>
<ProjectVersion>4.1</ProjectVersion>
<ProjectGuid>{d9439c52-76b5-4908-9b0d-43d1f52ec942}</ProjectGuid>
<DSP>Microsoft.Data.Tools.Schema.Sql.Sql160DatabaseSchemaProvider</DSP>
<OutputType>Database</OutputType>
<RootPath>
</RootPath>
<RootNamespace>SystemX.DB.CPXV2Log</RootNamespace>
<AssemblyName>SystemX.DB.CPXV2Log</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>false</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\Functions\Scala" />
<Folder Include="dbo\Scripts" />
<Folder Include="dbo\StoredProcedures" />
<Folder Include="dbo\Tables" />
</ItemGroup>
<ItemGroup>
<Build Include="dbo\Tables\HIST_LogSummary.sql" />
<Build Include="dbo\Tables\HIST_TestResult.sql" />
<Build Include="dbo\StoredProcedures\spCreateTableByName.sql" />
<Build Include="dbo\StoredProcedures\spCreateTableMonth.sql" />
</ItemGroup>
<ItemGroup>
<PostDeploy Include="dbo\Scripts\scriptCreateTables.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>

View File

@ -0,0 +1,23 @@
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date, ,>
-- Description: <Description, ,>
-- =============================================
CREATE FUNCTION [dbo].[XConvertDateE]
(
-- Add the parameters for the function here
@date AS VARCHAR(50)
)
RETURNS VARCHAR(50)
AS
BEGIN
DECLARE @OutDate datetime2
SET @OutDate = CASE WHEN CHARINDEX('PM',@date)>0 and CHARINDEX('PM 12',@date)<=0 THEN
DATEADD(HH,12,CONVERT (DATETIME, REPLACE(@date,'PM','')))
WHEN CHARINDEX('AM 12',@date)>0 THEN
DATEADD(HH,-12,CONVERT (DATETIME, REPLACE(@date,'AM','')))
ELSE CONVERT (DATETIME,REPLACE(REPLACE(@date,'AM',''),'PM','') )
END
RETURN @OutDate
END
GO

View File

@ -0,0 +1,25 @@
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date, ,>
-- Description: <Description, ,>
-- =============================================
CREATE FUNCTION [dbo].[XConvertDateK]
(
-- Add the parameters for the function here
@date AS VARCHAR(50)
)
RETURNS VARCHAR(50)
AS
BEGIN
DECLARE @OutDate datetime2
SET @OutDate = CASE WHEN CHARINDEX('오후',@date)>0 and CHARINDEX('오후 12',@date)<=0 THEN
DATEADD(HH,12,CONVERT (DATETIME, REPLACE(@date,'오후','')))
WHEN CHARINDEX('오전 12',@date)>0 THEN
DATEADD(HH,-12,CONVERT (DATETIME, REPLACE(@date,'오전','')))
ELSE CONVERT (DATETIME,REPLACE(REPLACE(@date,'오전',''),'오후','') )
END
RETURN @OutDate
END
GO

View File

@ -0,0 +1,31 @@
/*
배포 후 스크립트 템플릿
--------------------------------------------------------------------------------------
이 파일에는 빌드 스크립트에 추가될 SQL 문이 있습니다.
SQLCMD 구문을 사용하여 파일을 배포 후 스크립트에 포함합니다.
예: :r .\myfile.sql
SQLCMD 구문을 사용하여 배포 후 스크립트의 변수를 참조합니다.
예: :setvar TableName MyTable
SELECT * FROM [$(TableName)]
--------------------------------------------------------------------------------------
*/
/*10회 루프*/
DECLARE @CNT INT = 0;
DECLARE @MAX_CNT INT = 10
DECLARE @DBNAME varchar(50) = DB_NAME();
IF (@DBNAME LIKE '%short%')
BEGIN
WHILE(@CNT < @MAX_CNT)
BEGIN
DECLARE @yyyy varchar(4) = CONVERT(CHAR(4), DATEADD(YEAR, @CNT, GETDATE()), 23)
DECLARE @summary varchar(200) = N'HIST_LogSummary_'+@yyyy
DECLARE @result varchar(200) = N'HIST_TestResult_'+@yyyy
EXEC [dbo].[spCreateTableByName] @summary , @result
SET @CNT += 1
END
END
GO

View File

@ -0,0 +1,78 @@
CREATE PROCEDURE [dbo].[spCreateTableByName]
@logSummaryTableName nvarchar(200),
@logResultTableName nvarchar(200)
AS
IF NOT EXISTS(SELECT * FROM sys.tables WHERE NAME = @logSummaryTableName)
BEGIN
DECLARE @summaryQuery nvarchar(4000)= N'
CREATE TABLE [dbo].['+@logSummaryTableName+'](
[No] [bigint] IDENTITY(0,1) NOT NULL,
[StationName] [nvarchar](128) NULL,
[TestType] [nvarchar](8) NOT NULL,
[Version] [nvarchar](4) NOT NULL,
[ProdCode] [nvarchar](4) NOT NULL,
[TestListFileNo] [int] NULL,
[TestListVariantNo] [int] NULL,
[TestListCntID] [nvarchar](256) NULL,
[StepVersion] [int] NULL,
[HostID] [nvarchar](64) NOT NULL,
[Section] [nvarchar](64) NOT NULL,
[ProdNo_C] [nvarchar](32) NOT NULL,
[ProdNo_P] [nvarchar](32) NOT NULL,
[Testcode] [nvarchar](16) NOT NULL,
[TestListFileName] [nvarchar](256) NOT NULL,
[ProductID] [nvarchar](64) NOT NULL,
[Result] [nvarchar](16) NOT NULL,
[Duration] [nvarchar](16) NOT NULL,
[TestDT] [datetime2](7) NOT NULL,
CONSTRAINT [PK_'+@logSummaryTableName+'] PRIMARY KEY CLUSTERED
(
[No] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY],
UNIQUE NONCLUSTERED
(
[No] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
ALTER TABLE [dbo].['+@logSummaryTableName+'] ADD DEFAULT (''-'') FOR [StationName]
ALTER TABLE [dbo].['+@logSummaryTableName+'] ADD DEFAULT ((-1)) FOR [TestListFileNo]
ALTER TABLE [dbo].['+@logSummaryTableName+'] ADD DEFAULT ((-1)) FOR [TestListVariantNo]
ALTER TABLE [dbo].['+@logSummaryTableName+'] ADD DEFAULT ((-1)) FOR [StepVersion]
ALTER TABLE [dbo].['+@logSummaryTableName+'] ADD DEFAULT (getdate()) FOR [TestDT]
CREATE INDEX ['+@logSummaryTableName+'_2] ON '+@logSummaryTableName+' (TestDT, No);
CREATE INDEX ['+@logSummaryTableName+'_3] ON '+@logSummaryTableName+' (TestDT);
';
EXEC(@summaryQuery)
END
IF NOT EXISTS(SELECT * FROM sys.tables WHERE NAME = @logResultTableName)
BEGIN
DECLARE @resultQuery nvarchar(4000)= N'
CREATE TABLE [dbo].['+@logResultTableName+'](
[No] [bigint] NOT NULL,
[TestDT] [datetime2](7) NULL,
[LogData] [nvarchar](max) NOT NULL,
CONSTRAINT [PK_'+@logResultTableName+'] PRIMARY KEY CLUSTERED
(
[No] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
ALTER TABLE [dbo].['+@logResultTableName+'] ADD DEFAULT (getdate()) FOR [TestDT]
CREATE INDEX ['+@logResultTableName+'_2] ON '+@logResultTableName+' (TestDT, No);
CREATE INDEX ['+@logResultTableName+'_3] ON '+@logResultTableName+' (TestDT);
';
EXEC(@resultQuery)
END
RETURN 0

View File

@ -0,0 +1,37 @@
CREATE PROCEDURE [dbo].[spCreateTableMonth]
AS
-- HIST_TestResult
DECLARE @current_yymm varchar(4) = CONVERT(CHAR(4), GETDATE(), 12)
DECLARE @current_summaryTableName varchar(40) = N'HIST_LogSummary_'+@current_yymm
DECLARE @current_summary_query varchar(200) = N' SELECT * INTO ' + @current_summaryTableName + N' FROM HIST_LogSummary'
IF NOT EXISTS(SELECT * FROM sys.tables WHERE NAME = @current_summaryTableName)
BEGIN
EXEC(@current_summary_query)
END
DECLARE @current_resultTableName varchar(40) = N'HIST_TestResult_'+@current_yymm
DECLARE @current_result_query varchar(200) = N' SELECT * INTO ' + @current_resultTableName + N' FROM HIST_TestResult'
IF NOT EXISTS(SELECT * FROM sys.tables WHERE NAME = @current_resultTableName)
BEGIN
EXEC(@current_result_query)
END
-- HIST_TestResult
DECLARE @next_yymm varchar(4) = CONVERT(CHAR(4), DATEADD(MONTH, 1, GETDATE()), 12)
DECLARE @next_summaryTableName varchar(40) = N'HIST_LogSummary_'+@next_yymm
DECLARE @next_summary_query varchar(200) = N' SELECT * INTO ' + @next_summaryTableName + N' FROM HIST_LogSummary'
IF NOT EXISTS(SELECT * FROM sys.tables WHERE NAME = @next_summaryTableName)
BEGIN
EXEC(@next_summary_query)
END
DECLARE @next_resultTableName varchar(40) = N'HIST_TestResult_'+@next_yymm
DECLARE @next_result_query varchar(200) = N' SELECT * INTO ' + @next_resultTableName + N' FROM HIST_TestResult'
IF NOT EXISTS(SELECT * FROM sys.tables WHERE NAME = @next_resultTableName)
BEGIN
EXEC(@next_result_query)
END
RETURN 0

View File

@ -0,0 +1,51 @@
CREATE TABLE [dbo].[HIST_LogSummary](
[No] [bigint] IDENTITY(0,1) NOT NULL,
[StationName] [nvarchar](128) NULL,
[TestType] [nvarchar](8) NOT NULL,
[Version] [nvarchar](4) NOT NULL,
[ProdCode] [nvarchar](4) NOT NULL,
[TestListFileNo] [int] NULL,
[TestListVariantNo] [int] NULL,
[TestListCntID] [nvarchar](256) NULL,
[StepVersion] [int] NULL,
[HostID] [nvarchar](64) NOT NULL,
[Section] [nvarchar](64) NOT NULL,
[ProdNo_C] [nvarchar](32) NOT NULL,
[ProdNo_P] [nvarchar](32) NOT NULL,
[Testcode] [nvarchar](16) NOT NULL,
[TestListFileName] [nvarchar](256) NOT NULL,
[ProductID] [nvarchar](64) NOT NULL,
[Result] [nvarchar](16) NOT NULL,
[Duration] [nvarchar](16) NOT NULL,
[TestDT] [datetime2](7) NOT NULL,
UNIQUE NONCLUSTERED
(
[No] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY],
CONSTRAINT [PK_HIST_LogSummary] PRIMARY KEY ([No])
) ON [PRIMARY]
GO
GO
ALTER TABLE [dbo].[HIST_LogSummary] ADD DEFAULT ('-') FOR [StationName]
GO
ALTER TABLE [dbo].[HIST_LogSummary] ADD DEFAULT ((-1)) FOR [TestListFileNo]
GO
ALTER TABLE [dbo].[HIST_LogSummary] ADD DEFAULT ((-1)) FOR [TestListVariantNo]
GO
ALTER TABLE [dbo].[HIST_LogSummary] ADD DEFAULT ((-1)) FOR [StepVersion]
GO
ALTER TABLE [dbo].[HIST_LogSummary] ADD DEFAULT (getdate()) FOR [TestDT]
GO
CREATE INDEX [HIST_LogSummary_2] ON HIST_LogSummary (TestDT, No);
GO
CREATE INDEX [HIST_LogSummary_3] ON HIST_LogSummary (TestDT);
GO

View File

@ -0,0 +1,19 @@
CREATE TABLE [dbo].[HIST_TestResult](
[No] [bigint] NOT NULL,
[TestDT] [datetime2](7) NULL,
[LogData] [nvarchar](MAX) NOT NULL,
CONSTRAINT [PK_HIST_TestResult] PRIMARY KEY CLUSTERED
(
[No] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[HIST_TestResult] ADD DEFAULT (getdate()) FOR [TestDT]
GO
CREATE INDEX [HIST_TestResult_2] ON HIST_TestResult (TestDT, No);
GO
CREATE INDEX [HIST_TestResult_3] ON HIST_TestResult (TestDT);
GO

View File

@ -0,0 +1,275 @@
using System;
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;
namespace SystemX.Core.DB;
public partial class CPXV2 : DbContext
{
public CPXV2(DbContextOptions<CPXV2> options)
: base(options)
{
}
public virtual DbSet<HIST_TestListFile> HIST_TestListFiles { get; set; }
public virtual DbSet<HIST_TestListFileLatestStepVersion> HIST_TestListFileLatestStepVersions { get; set; }
public virtual DbSet<HIST_TestListFileVariantList> HIST_TestListFileVariantLists { get; set; }
public virtual DbSet<HIST_TesterSummary> HIST_TesterSummaries { get; set; }
public virtual DbSet<PROD_Group> PROD_Groups { get; set; }
public virtual DbSet<PROD_Release> PROD_Releases { get; set; }
public virtual DbSet<PROD_Variant> PROD_Variants { get; set; }
public virtual DbSet<STAT_Host> STAT_Hosts { get; set; }
public virtual DbSet<STAT_TestCode> STAT_TestCodes { get; set; }
public virtual DbSet<STAT_User> STAT_Users { get; set; }
public virtual DbSet<STOR_TestListFile> STOR_TestListFiles { get; set; }
public virtual DbSet<VRFY_TestListFileRelease> VRFY_TestListFileReleases { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<HIST_TestListFile>(entity =>
{
entity.HasKey(e => e.No).HasName("PK__HIST_Tes__3214D4A8C38F3D8E");
entity.ToTable("HIST_TestListFile");
entity.HasIndex(e => new { e.TestListFileNo, e.Name, e.No }, "CSK_HIST_TestList_2");
entity.Property(e => e.Name).HasMaxLength(64);
entity.HasOne(d => d.TestListFileNoNavigation).WithMany(p => p.HIST_TestListFiles)
.HasForeignKey(d => d.TestListFileNo)
.OnDelete(DeleteBehavior.SetNull)
.HasConstraintName("FK__HIST_Test__TestL__68487DD7");
});
modelBuilder.Entity<HIST_TestListFileLatestStepVersion>(entity =>
{
entity.HasKey(e => e.No).HasName("PK__HIST_Tes__3214D4A80FA7E1DA");
entity.ToTable("HIST_TestListFileLatestStepVersion");
entity.HasOne(d => d.TestListFileNoNavigation).WithMany(p => p.HIST_TestListFileLatestStepVersions)
.HasForeignKey(d => d.TestListFileNo)
.OnDelete(DeleteBehavior.SetNull)
.HasConstraintName("FK__HIST_Test__TestL__6754599E");
});
modelBuilder.Entity<HIST_TestListFileVariantList>(entity =>
{
entity.HasKey(e => e.No).HasName("PK__HIST_Tes__3214D4A8BA392490");
entity.ToTable("HIST_TestListFileVariantList");
entity.HasIndex(e => new { e.TestListFileNo, e.No }, "CSK_HIST_TestListFileVariantList_2");
entity.Property(e => e.VariantList).HasMaxLength(2048);
entity.HasOne(d => d.TestListFileNoNavigation).WithMany(p => p.HIST_TestListFileVariantLists)
.HasForeignKey(d => d.TestListFileNo)
.OnDelete(DeleteBehavior.SetNull)
.HasConstraintName("FK__HIST_Test__TestL__66603565");
});
modelBuilder.Entity<HIST_TesterSummary>(entity =>
{
entity
.HasNoKey()
.ToTable("HIST_TesterSummary");
entity.HasIndex(e => e.No, "UQ__HIST_Tes__3214D4A9D65E09B4").IsUnique();
entity.Property(e => e.Duration).HasMaxLength(16);
entity.Property(e => e.HostID).HasMaxLength(64);
entity.Property(e => e.No).ValueGeneratedOnAdd();
entity.Property(e => e.ProdCode).HasMaxLength(4);
entity.Property(e => e.ProdNo_C).HasMaxLength(32);
entity.Property(e => e.ProdNo_P).HasMaxLength(32);
entity.Property(e => e.ProductID).HasMaxLength(64);
entity.Property(e => e.Result).HasMaxLength(16);
entity.Property(e => e.Section).HasMaxLength(64);
entity.Property(e => e.StationName)
.HasMaxLength(128)
.HasDefaultValue("-");
entity.Property(e => e.StepVersion).HasDefaultValue(-1);
entity.Property(e => e.TestDT).HasDefaultValueSql("(getdate())");
entity.Property(e => e.TestListCntID).HasMaxLength(256);
entity.Property(e => e.TestListFileName).HasMaxLength(256);
entity.Property(e => e.TestListFileNo).HasDefaultValue(-1);
entity.Property(e => e.TestListVariantNo).HasDefaultValue(-1);
entity.Property(e => e.TestType).HasMaxLength(8);
entity.Property(e => e.Testcode).HasMaxLength(16);
entity.Property(e => e.Version).HasMaxLength(4);
});
modelBuilder.Entity<PROD_Group>(entity =>
{
entity.HasKey(e => e.No).HasName("PK__PROD_Gro__3214D4A8A3CE9C41");
entity.ToTable("PROD_Group");
entity.HasIndex(e => e.ModelName, "UQ__PROD_Gro__67DC63B5E6F58A45").IsUnique();
entity.Property(e => e.Comment).HasMaxLength(256);
entity.Property(e => e.GroupName).HasMaxLength(128);
entity.Property(e => e.ModelName).HasMaxLength(128);
});
modelBuilder.Entity<PROD_Release>(entity =>
{
entity.HasKey(e => e.No).HasName("PK__PROD_Rel__3214D4A86EAA1A79");
entity.ToTable("PROD_Release");
entity.Property(e => e.Config).HasMaxLength(32);
entity.Property(e => e.ProdNo_C).HasMaxLength(32);
entity.Property(e => e.RegDT).HasDefaultValueSql("(getdate())");
entity.Property(e => e.RegUser).HasMaxLength(32);
entity.Property(e => e.RegUserComment).HasMaxLength(256);
entity.HasOne(d => d.TestCodeNoNavigation).WithMany(p => p.PROD_Releases)
.HasForeignKey(d => d.TestCodeNo)
.OnDelete(DeleteBehavior.SetNull)
.HasConstraintName("FK__PROD_Rele__TestC__6477ECF3");
entity.HasOne(d => d.VariantNoNavigation).WithMany(p => p.PROD_Releases)
.HasForeignKey(d => d.VariantNo)
.OnDelete(DeleteBehavior.SetNull)
.HasConstraintName("FK__PROD_Rele__Varia__656C112C");
});
modelBuilder.Entity<PROD_Variant>(entity =>
{
entity.HasKey(e => e.No).HasName("PK__PROD_Var__3214D4A8DEBD410D");
entity.ToTable("PROD_Variant");
entity.Property(e => e.Comment).HasMaxLength(256);
entity.Property(e => e.Description).HasMaxLength(256);
entity.Property(e => e.IsUse).HasDefaultValue(true);
entity.Property(e => e.ProdNo_P).HasMaxLength(32);
entity.Property(e => e.RegDT).HasDefaultValueSql("(getdate())");
entity.Property(e => e.RegUser).HasMaxLength(32);
entity.Property(e => e.UpdateDT).HasDefaultValueSql("(getdate())");
entity.Property(e => e.UpdateUser).HasMaxLength(32);
entity.HasOne(d => d.GroupNoNavigation).WithMany(p => p.PROD_Variants)
.HasForeignKey(d => d.GroupNo)
.OnDelete(DeleteBehavior.SetNull)
.HasConstraintName("FK__PROD_Vari__Group__628FA481");
entity.HasOne(d => d.TestListFileNoNavigation).WithMany(p => p.PROD_Variants)
.HasForeignKey(d => d.TestListFileNo)
.OnDelete(DeleteBehavior.SetNull)
.HasConstraintName("FK__PROD_Vari__TestL__6383C8BA");
});
modelBuilder.Entity<STAT_Host>(entity =>
{
entity.HasKey(e => e.No).HasName("PK__STAT_Hos__3214D4A8B3A9E118");
entity.ToTable("STAT_Host");
entity.Property(e => e.Comment).HasMaxLength(256);
entity.Property(e => e.HostID).HasMaxLength(64);
entity.Property(e => e.IP).HasMaxLength(15);
entity.Property(e => e.Section).HasMaxLength(64);
entity.Property(e => e.TestCode).HasMaxLength(16);
entity.Property(e => e.UpdateDT).HasDefaultValueSql("(getdate())");
});
modelBuilder.Entity<STAT_TestCode>(entity =>
{
entity.HasKey(e => e.No).HasName("PK__STAT_Tes__3214D4A8759E255B");
entity.ToTable("STAT_TestCode");
entity.HasIndex(e => e.TestCode, "UQ__STAT_Tes__0B0C35F71EDB4C9E").IsUnique();
entity.Property(e => e.Comment).HasMaxLength(256);
entity.Property(e => e.Gate1).HasMaxLength(64);
entity.Property(e => e.Gate2).HasMaxLength(64);
entity.Property(e => e.TestCode).HasMaxLength(16);
});
modelBuilder.Entity<STAT_User>(entity =>
{
entity.HasKey(e => e.No).HasName("PK__STAT_Use__3214D4A8F88707CA");
entity.ToTable("STAT_User");
entity.HasIndex(e => e.UserID, "UQ__STAT_Use__1788CCAD04FDA05E").IsUnique();
entity.Property(e => e.Comment).HasMaxLength(256);
entity.Property(e => e.Dept).HasMaxLength(64);
entity.Property(e => e.Email).HasMaxLength(64);
entity.Property(e => e.Name).HasMaxLength(32);
entity.Property(e => e.Password).HasMaxLength(32);
entity.Property(e => e.UpdateDT).HasDefaultValueSql("(getdate())");
entity.Property(e => e.UserID).HasMaxLength(32);
});
modelBuilder.Entity<STOR_TestListFile>(entity =>
{
entity.HasKey(e => e.No).HasName("PK__STOR_Tes__3214D4A8082195B1");
entity.ToTable("STOR_TestListFile");
entity.Property(e => e.Comment).HasMaxLength(256);
entity.Property(e => e.Description).HasMaxLength(256);
entity.Property(e => e.FileName).HasMaxLength(64);
entity.Property(e => e.Name).HasMaxLength(64);
entity.Property(e => e.ProdCode).HasMaxLength(4);
entity.Property(e => e.RegDT).HasDefaultValueSql("(getdate())");
entity.Property(e => e.RegUser).HasMaxLength(32);
entity.Property(e => e.TestType).HasMaxLength(8);
entity.Property(e => e.UpdateDT).HasDefaultValueSql("(getdate())");
entity.Property(e => e.UpdateUser).HasMaxLength(32);
entity.Property(e => e.Version).HasMaxLength(4);
});
modelBuilder.Entity<VRFY_TestListFileRelease>(entity =>
{
entity.HasKey(e => e.No).HasName("PK__VRFY_Tes__3214D4A84ACCA9A3");
entity.ToTable("VRFY_TestListFileRelease");
entity.HasIndex(e => new { e.TestListFileNo, e.StepID, e.Enable, e.No }, "CSK_VRFY_Release_2");
entity.Property(e => e.Activate).HasDefaultValue(true);
entity.Property(e => e.Dim).HasMaxLength(64);
entity.Property(e => e.Enable).HasDefaultValue(true);
entity.Property(e => e.Gate).HasMaxLength(128);
entity.Property(e => e.IsGlobal).HasDefaultValue(false);
entity.Property(e => e.MacroParm).HasMaxLength(2048);
entity.Property(e => e.Parm).HasMaxLength(2048);
entity.Property(e => e.SpecMax).HasMaxLength(2048);
entity.Property(e => e.SpecMin).HasMaxLength(2048);
entity.Property(e => e.StepDesc)
.HasMaxLength(2048)
.HasDefaultValue("");
entity.Property(e => e.UpdateDT).HasDefaultValueSql("(getdate())");
entity.Property(e => e.UseFunction).HasMaxLength(2048);
entity.Property(e => e.Variant).HasMaxLength(32);
entity.HasOne(d => d.TestListFileNoNavigation).WithMany(p => p.VRFY_TestListFileReleases)
.HasForeignKey(d => d.TestListFileNo)
.OnDelete(DeleteBehavior.SetNull)
.HasConstraintName("FK__VRFY_Test__TestL__619B8048");
});
OnModelCreatingPartial(modelBuilder);
}
partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
}

View File

@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
namespace SystemX.Core.DB;
public partial class HIST_TestListFile
{
public long No { get; set; }
public int? TestListFileNo { get; set; }
public string Name { get; set; } = null!;
public byte[]? TestListData1 { get; set; }
public byte[]? TestListData2 { get; set; }
public byte[]? TestListData3 { get; set; }
public byte[]? TestListData4 { get; set; }
public byte[]? TestListData5 { get; set; }
public byte[]? TestListData6 { get; set; }
public byte[]? TestListData7 { get; set; }
public byte[]? TestListData8 { get; set; }
public byte[]? TestListData9 { get; set; }
public byte[]? TestListData10 { get; set; }
public virtual STOR_TestListFile? TestListFileNoNavigation { get; set; }
}

View File

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
namespace SystemX.Core.DB;
public partial class HIST_TestListFileLatestStepVersion
{
public long No { get; set; }
public int? TestListFileNo { get; set; }
public int LatestStepVersion { get; set; }
public virtual STOR_TestListFile? TestListFileNoNavigation { get; set; }
}

View File

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
namespace SystemX.Core.DB;
public partial class HIST_TestListFileVariantList
{
public long No { get; set; }
public int? TestListFileNo { get; set; }
public string? VariantList { get; set; }
public virtual STOR_TestListFile? TestListFileNoNavigation { get; set; }
}

View File

@ -0,0 +1,45 @@
using System;
using System.Collections.Generic;
namespace SystemX.Core.DB;
public partial class HIST_TesterSummary
{
public long No { get; set; }
public string? StationName { get; set; }
public string TestType { get; set; } = null!;
public string Version { get; set; } = null!;
public string ProdCode { get; set; } = null!;
public int? TestListFileNo { get; set; }
public int? TestListVariantNo { get; set; }
public string? TestListCntID { get; set; }
public int? StepVersion { get; set; }
public string HostID { get; set; } = null!;
public string Section { get; set; } = null!;
public string ProdNo_C { get; set; } = null!;
public string ProdNo_P { get; set; } = null!;
public string Testcode { get; set; } = null!;
public string TestListFileName { get; set; } = null!;
public string ProductID { get; set; } = null!;
public string Result { get; set; } = null!;
public string Duration { get; set; } = null!;
public DateTime TestDT { get; set; }
}

View File

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
namespace SystemX.Core.DB;
public partial class PROD_Group
{
public int No { get; set; }
public string GroupName { get; set; } = null!;
public string ModelName { get; set; } = null!;
public string? Comment { get; set; }
public virtual ICollection<PROD_Variant> PROD_Variants { get; set; } = new List<PROD_Variant>();
}

View File

@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
namespace SystemX.Core.DB;
public partial class PROD_Release
{
public int No { get; set; }
public string ProdNo_C { get; set; } = null!;
public int? TestCodeNo { get; set; }
public int? VariantNo { get; set; }
public string Config { get; set; } = null!;
public DateTime RegDT { get; set; }
public string RegUser { get; set; } = null!;
public string? RegUserComment { get; set; }
public virtual STAT_TestCode? TestCodeNoNavigation { get; set; }
public virtual PROD_Variant? VariantNoNavigation { get; set; }
}

View File

@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
namespace SystemX.Core.DB;
public partial class PROD_Variant
{
public int No { get; set; }
public string ProdNo_P { get; set; } = null!;
public DateTime RegDT { get; set; }
public string RegUser { get; set; } = null!;
public DateTime UpdateDT { get; set; }
public string UpdateUser { get; set; } = null!;
public int? GroupNo { get; set; }
public string? Comment { get; set; }
public string? Description { get; set; }
public int? TestListFileNo { get; set; }
public int UseTLPosition { get; set; }
public bool IsUse { get; set; }
public virtual PROD_Group? GroupNoNavigation { get; set; }
public virtual ICollection<PROD_Release> PROD_Releases { get; set; } = new List<PROD_Release>();
public virtual STOR_TestListFile? TestListFileNoNavigation { get; set; }
}

View File

@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
namespace SystemX.Core.DB;
public partial class STAT_Host
{
public int No { get; set; }
public string HostID { get; set; } = null!;
public string Section { get; set; } = null!;
public string IP { get; set; } = null!;
public string? TestCode { get; set; }
public string? Comment { get; set; }
public DateTime UpdateDT { get; set; }
}

View File

@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
namespace SystemX.Core.DB;
public partial class STAT_TestCode
{
public int No { get; set; }
public string TestCode { get; set; } = null!;
public string Gate1 { get; set; } = null!;
public string Gate2 { get; set; } = null!;
public string? Comment { get; set; }
public virtual ICollection<PROD_Release> PROD_Releases { get; set; } = new List<PROD_Release>();
}

View File

@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
namespace SystemX.Core.DB;
public partial class STAT_User
{
public int No { get; set; }
public string UserID { get; set; } = null!;
public string Name { get; set; } = null!;
public string Password { get; set; } = null!;
public string Dept { get; set; } = null!;
public string Email { get; set; } = null!;
public string? Comment { get; set; }
public DateTime UpdateDT { get; set; }
}

View File

@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
namespace SystemX.Core.DB;
public partial class STOR_TestListFile
{
public int No { get; set; }
public string Name { get; set; } = null!;
public string TestType { get; set; } = null!;
public string Version { get; set; } = null!;
public string ProdCode { get; set; } = null!;
public string FileName { get; set; } = null!;
public DateTime RegDT { get; set; }
public string RegUser { get; set; } = null!;
public DateTime UpdateDT { get; set; }
public string UpdateUser { get; set; } = null!;
public string? Comment { get; set; }
public string? Description { get; set; }
public byte[] TestListData { get; set; } = null!;
public virtual ICollection<HIST_TestListFileLatestStepVersion> HIST_TestListFileLatestStepVersions { get; set; } = new List<HIST_TestListFileLatestStepVersion>();
public virtual ICollection<HIST_TestListFileVariantList> HIST_TestListFileVariantLists { get; set; } = new List<HIST_TestListFileVariantList>();
public virtual ICollection<HIST_TestListFile> HIST_TestListFiles { get; set; } = new List<HIST_TestListFile>();
public virtual ICollection<PROD_Variant> PROD_Variants { get; set; } = new List<PROD_Variant>();
public virtual ICollection<VRFY_TestListFileRelease> VRFY_TestListFileReleases { get; set; } = new List<VRFY_TestListFileRelease>();
}

View File

@ -0,0 +1,45 @@
using System;
using System.Collections.Generic;
namespace SystemX.Core.DB;
public partial class VRFY_TestListFileRelease
{
public long No { get; set; }
public int? TestListFileNo { get; set; }
public long StepID { get; set; }
public string Variant { get; set; } = null!;
public string Gate { get; set; } = null!;
public bool? Activate { get; set; }
public int StepVersion { get; set; }
public bool? Enable { get; set; }
public long? Position { get; set; }
public string? StepDesc { get; set; }
public string UseFunction { get; set; } = null!;
public string? MacroParm { get; set; }
public string? Parm { get; set; }
public string SpecMin { get; set; } = null!;
public string SpecMax { get; set; } = null!;
public bool? IsGlobal { get; set; }
public string Dim { get; set; } = null!;
public DateTime UpdateDT { get; set; }
public virtual STOR_TestListFile? TestListFileNoNavigation { get; set; }
}

View File

@ -0,0 +1,72 @@
using System;
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;
namespace SystemX.Core.DB;
public partial class CPXV2Log : DbContext
{
public CPXV2Log(DbContextOptions<CPXV2Log> options)
: base(options)
{
}
public virtual DbSet<HIST_LogSummary> HIST_LogSummaries { get; set; }
public virtual DbSet<HIST_TestResult> HIST_TestResults { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<HIST_LogSummary>(entity =>
{
entity.HasKey(e => e.No);
entity.ToTable("HIST_LogSummary");
entity.HasIndex(e => new { e.TestDT, e.No }, "HIST_LogSummary_2");
entity.HasIndex(e => e.TestDT, "HIST_LogSummary_3");
entity.HasIndex(e => e.No, "UQ__HIST_Log__3214D4A98E941729").IsUnique();
entity.Property(e => e.Duration).HasMaxLength(16);
entity.Property(e => e.HostID).HasMaxLength(64);
entity.Property(e => e.ProdCode).HasMaxLength(4);
entity.Property(e => e.ProdNo_C).HasMaxLength(32);
entity.Property(e => e.ProdNo_P).HasMaxLength(32);
entity.Property(e => e.ProductID).HasMaxLength(64);
entity.Property(e => e.Result).HasMaxLength(16);
entity.Property(e => e.Section).HasMaxLength(64);
entity.Property(e => e.StationName)
.HasMaxLength(128)
.HasDefaultValue("-");
entity.Property(e => e.StepVersion).HasDefaultValue(-1);
entity.Property(e => e.TestDT).HasDefaultValueSql("(getdate())");
entity.Property(e => e.TestListCntID).HasMaxLength(256);
entity.Property(e => e.TestListFileName).HasMaxLength(256);
entity.Property(e => e.TestListFileNo).HasDefaultValue(-1);
entity.Property(e => e.TestListVariantNo).HasDefaultValue(-1);
entity.Property(e => e.TestType).HasMaxLength(8);
entity.Property(e => e.Testcode).HasMaxLength(16);
entity.Property(e => e.Version).HasMaxLength(4);
});
modelBuilder.Entity<HIST_TestResult>(entity =>
{
entity.HasKey(e => e.No);
entity.ToTable("HIST_TestResult");
entity.HasIndex(e => new { e.TestDT, e.No }, "HIST_TestResult_2");
entity.HasIndex(e => e.TestDT, "HIST_TestResult_3");
entity.Property(e => e.No).ValueGeneratedNever();
entity.Property(e => e.TestDT).HasDefaultValueSql("(getdate())");
});
OnModelCreatingPartial(modelBuilder);
}
partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
}

View File

@ -0,0 +1,45 @@
using System;
using System.Collections.Generic;
namespace SystemX.Core.DB;
public partial class HIST_LogSummary
{
public long No { get; set; }
public string? StationName { get; set; }
public string TestType { get; set; } = null!;
public string Version { get; set; } = null!;
public string ProdCode { get; set; } = null!;
public int? TestListFileNo { get; set; }
public int? TestListVariantNo { get; set; }
public string? TestListCntID { get; set; }
public int? StepVersion { get; set; }
public string HostID { get; set; } = null!;
public string Section { get; set; } = null!;
public string ProdNo_C { get; set; } = null!;
public string ProdNo_P { get; set; } = null!;
public string Testcode { get; set; } = null!;
public string TestListFileName { get; set; } = null!;
public string ProductID { get; set; } = null!;
public string Result { get; set; } = null!;
public string Duration { get; set; } = null!;
public DateTime TestDT { get; set; }
}

View File

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
namespace SystemX.Core.DB;
public partial class HIST_TestResult
{
public long No { get; set; }
public DateTime? TestDT { get; set; }
public string LogData { get; set; } = null!;
}

View File

@ -15,6 +15,10 @@ Project("{00D1A9C2-B5F0-4AF3-8072-F6C62B433612}") = "SystemX.DB.UniqueKeyDB", "D
EndProject
Project("{00D1A9C2-B5F0-4AF3-8072-F6C62B433612}") = "SystemX.DB.VPKI_DataDB", "DB\SystemX.DB.VPKI_DataDB\SystemX.DB.VPKI_DataDB.sqlproj", "{5D374F06-D9FA-4159-BC84-1F3CA506F50E}"
EndProject
Project("{00D1A9C2-B5F0-4AF3-8072-F6C62B433612}") = "SystemX.DB.CPXV2", "DB\SystemX.DB.CPXV2\SystemX.DB.CPXV2.sqlproj", "{3A2D7552-9C12-489F-8A0B-330E000C860D}"
EndProject
Project("{00D1A9C2-B5F0-4AF3-8072-F6C62B433612}") = "SystemX.DB.CPXV2Log", "DB\SystemX.DB.CPXV2Log\SystemX.DB.CPXV2Log.sqlproj", "{D9439C52-76B5-4908-9B0D-43D1F52EC942}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -47,6 +51,18 @@ Global
{5D374F06-D9FA-4159-BC84-1F3CA506F50E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5D374F06-D9FA-4159-BC84-1F3CA506F50E}.Release|Any CPU.Build.0 = Release|Any CPU
{5D374F06-D9FA-4159-BC84-1F3CA506F50E}.Release|Any CPU.Deploy.0 = Release|Any CPU
{3A2D7552-9C12-489F-8A0B-330E000C860D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3A2D7552-9C12-489F-8A0B-330E000C860D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3A2D7552-9C12-489F-8A0B-330E000C860D}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
{3A2D7552-9C12-489F-8A0B-330E000C860D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3A2D7552-9C12-489F-8A0B-330E000C860D}.Release|Any CPU.Build.0 = Release|Any CPU
{3A2D7552-9C12-489F-8A0B-330E000C860D}.Release|Any CPU.Deploy.0 = Release|Any CPU
{D9439C52-76B5-4908-9B0D-43D1F52EC942}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D9439C52-76B5-4908-9B0D-43D1F52EC942}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D9439C52-76B5-4908-9B0D-43D1F52EC942}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
{D9439C52-76B5-4908-9B0D-43D1F52EC942}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D9439C52-76B5-4908-9B0D-43D1F52EC942}.Release|Any CPU.Build.0 = Release|Any CPU
{D9439C52-76B5-4908-9B0D-43D1F52EC942}.Release|Any CPU.Deploy.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -55,6 +71,8 @@ Global
{B44C85FA-BD31-419F-8481-477E166A5753} = {C8D5274F-AC00-46C7-1F8D-E88E81087A52}
{C67F3F97-1D52-4C75-A04F-16ED41822CCD} = {C8D5274F-AC00-46C7-1F8D-E88E81087A52}
{5D374F06-D9FA-4159-BC84-1F3CA506F50E} = {C8D5274F-AC00-46C7-1F8D-E88E81087A52}
{3A2D7552-9C12-489F-8A0B-330E000C860D} = {C8D5274F-AC00-46C7-1F8D-E88E81087A52}
{D9439C52-76B5-4908-9B0D-43D1F52EC942} = {C8D5274F-AC00-46C7-1F8D-E88E81087A52}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {A26A3BD0-2161-41FA-949A-DEA966E8F798}