diff --git a/CPXV2DB/CPXV2Log/dbo/Scripts/scriptCreateTables.sql b/CPXV2DB/CPXV2Log/dbo/Scripts/scriptCreateTables.sql new file mode 100644 index 0000000..90f8ba7 --- /dev/null +++ b/CPXV2DB/CPXV2Log/dbo/Scripts/scriptCreateTables.sql @@ -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 diff --git a/CPXV2DBPatch/sqlScripts/CPXV2Log_Create.sql b/CPXV2DBPatch/sqlScripts/CPXV2Log_Create.sql index ec79205..f94a5c9 100644 --- a/CPXV2DBPatch/sqlScripts/CPXV2Log_Create.sql +++ b/CPXV2DBPatch/sqlScripts/CPXV2Log_Create.sql @@ -434,48 +434,6 @@ RETURNS VARCHAR(50) RETURN @OutDate END 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]을(를) 만드는 중...'; @@ -559,21 +517,47 @@ AS END RETURN 0 GO --- 배포된 트랜잭션 로그를 사용하여 대상 서버를 업데이트하는 리팩터링 단계 +PRINT N'프로시저 [dbo].[spCreateTableMonth]을(를) 만드는 중...'; -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 = '745abc42-8466-4172-a0d4-3a9da8483b9c') -INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('745abc42-8466-4172-a0d4-3a9da8483b9c') -IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = 'c18999b7-55db-4c9c-9f71-a27326d789ae') -INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('c18999b7-55db-4c9c-9f71-a27326d789ae') 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 /* 배포 후 스크립트 템플릿 diff --git a/CPXV2DBPatch/sqlScripts/CPXV2_Create.sql b/CPXV2DBPatch/sqlScripts/CPXV2_Create.sql index 408075d..2439c3a 100644 --- a/CPXV2DBPatch/sqlScripts/CPXV2_Create.sql +++ b/CPXV2DBPatch/sqlScripts/CPXV2_Create.sql @@ -242,6 +242,44 @@ 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 (512) NULL, + [UseFunction] NVARCHAR (256) NOT NULL, + [MacroParm] NVARCHAR (512) NULL, + [Parm] NVARCHAR (512) NULL, + [SpecMin] NVARCHAR (512) NOT NULL, + [SpecMax] NVARCHAR (512) 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]을(를) 만드는 중...'; @@ -372,6 +410,29 @@ CREATE TABLE [dbo].[PROD_Group] ( ) 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]을(를) 만드는 중...'; @@ -385,35 +446,6 @@ CREATE TABLE [dbo].[HIST_TestListFileLatestStepVersion] ( ) 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'테이블 [dbo].[HIST_TestListFile]을(를) 만드는 중...'; @@ -448,64 +480,77 @@ CREATE NONCLUSTERED INDEX [CSK_HIST_TestList_2] GO -PRINT N'테이블 [dbo].[HIST_TestListFileVariantList]을(를) 만드는 중...'; +PRINT N'테이블 [dbo].[HIST_TesterSummary]을(를) 만드는 중...'; 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] +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'인덱스 [dbo].[HIST_TestListFileVariantList].[CSK_HIST_TestListFileVariantList_2]을(를) 만드는 중...'; +PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...'; GO -CREATE NONCLUSTERED INDEX [CSK_HIST_TestListFileVariantList_2] - ON [dbo].[HIST_TestListFileVariantList]([TestListFileNo] ASC, [No] ASC) - ON [PRIMARY]; +ALTER TABLE [dbo].[VRFY_TestListFileRelease] + ADD DEFAULT ((1)) FOR [Activate]; GO -PRINT N'테이블 [dbo].[VRFY_TestListFileRelease]을(를) 만드는 중...'; +PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...'; 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 (512) NULL, - [UseFunction] NVARCHAR (256) NOT NULL, - [MacroParm] NVARCHAR (512) NULL, - [Parm] NVARCHAR (512) NULL, - [SpecMin] NVARCHAR (512) NOT NULL, - [SpecMax] NVARCHAR (512) NOT NULL, - [IsGlobal] BIT NULL, - [Dim] NVARCHAR (64) NOT NULL, - [UpdateDT] DATETIME2 (7) NOT NULL, - PRIMARY KEY CLUSTERED ([No] ASC) ON [PRIMARY] -) ON [PRIMARY]; +ALTER TABLE [dbo].[VRFY_TestListFileRelease] + ADD DEFAULT ((1)) FOR [Enable]; GO -PRINT N'인덱스 [dbo].[VRFY_TestListFileRelease].[CSK_VRFY_Release_2]을(를) 만드는 중...'; +PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...'; GO -CREATE NONCLUSTERED INDEX [CSK_VRFY_Release_2] - ON [dbo].[VRFY_TestListFileRelease]([TestListFileNo] ASC, [StepID] ASC, [Enable] ASC, [No] ASC) - ON [PRIMARY]; +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 @@ -635,48 +680,12 @@ ALTER TABLE [dbo].[HIST_TesterSummary] GO -PRINT N'DEFAULT 제약 조건 <이름 없음>을(를) 만드는 중...'; +PRINT N'외래 키 <이름 없음>을(를) 만드는 중...'; 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]; + ADD FOREIGN KEY ([TestListFileNo]) REFERENCES [dbo].[STOR_TestListFile] ([No]) ON DELETE SET NULL; GO @@ -719,6 +728,15 @@ 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; @@ -733,24 +751,6 @@ ALTER TABLE [dbo].[HIST_TestListFile] ADD FOREIGN KEY ([TestListFileNo]) REFERENCES [dbo].[STOR_TestListFile] ([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].[VRFY_TestListFileRelease] - ADD FOREIGN KEY ([TestListFileNo]) REFERENCES [dbo].[STOR_TestListFile] ([No]) ON DELETE SET NULL; - - GO PRINT N'CHECK 제약 조건 [dbo].[CK_PROD_TestList_UseTLPosition_2]을(를) 만드는 중...';