[성현모] CPMeta 기능 구현 완료

This commit is contained in:
SHM
2025-10-30 16:51:52 +09:00
parent 765f6c6378
commit b78e5a23ea
16 changed files with 518 additions and 80 deletions

View File

@ -43,19 +43,70 @@ USE [$(DatabaseName)];
GO
/*
테이블 [dbo].[tWbmsMeta]의 열 [[dbo].[tWbmsMeta].[ctest]]을(를) 추가해야 하지만 해당 열에 기본값이 없으며 NULL 값을 허용하지 않습니다. 테이블에 데이터가 있으면 ALTER 스크립트가 실행되지 않습니다. 이러한 문제를 방지하려면 열에 기본값을 추가 및 해당 열을 NULL 값을 허용하도록 표시하거나 스마트 기본값을 배포 옵션으로서 생성할 수 있도록 하십시오.
[dbo].[tWbms].[cMacAddress] 열이 삭제되므로 데이터 손실이 발생할 수 있습니다.
*/
IF EXISTS (select top 1 1 from [dbo].[tWbmsMeta])
IF EXISTS (select top 1 1 from [dbo].[tWbms])
RAISERROR (N'행이 발견되었습니다. 데이터가 손실될 수 있으므로 스키마 업데이트가 종료됩니다.', 16, 127) WITH NOWAIT
GO
PRINT N'테이블 [dbo].[tWbmsMeta]을(를) 변경하는 중...';
PRINT N'UNIQUE 제약 조건 [dbo].[UQ_cMacAddress]을(를) 삭제하는 중...';
GO
ALTER TABLE [dbo].[tWbmsMeta]
ADD [ctest] DATETIME2 (7) NOT NULL;
ALTER TABLE [dbo].[tWbms] DROP CONSTRAINT [UQ_cMacAddress];
GO
PRINT N'[dbo].[tWbms] 테이블 다시 빌드 시작...';
GO
BEGIN TRANSACTION;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
SET XACT_ABORT ON;
CREATE TABLE [dbo].[tmp_ms_xx_tWbms] (
[cProductID] NVARCHAR (50) NOT NULL,
[cMacAddress1] NVARCHAR (50) NULL,
[cMacAddress2] NVARCHAR (50) NULL,
[cType] NVARCHAR (20) NULL,
[cProductNo] NVARCHAR (50) NULL,
[cSpareValue] NVARCHAR (200) NULL,
[cDateTime] DATETIME2 (7) NOT NULL,
CONSTRAINT [tmp_ms_xx_constraint_PK_cProductKey1] PRIMARY KEY CLUSTERED ([cProductID] ASC),
CONSTRAINT [tmp_ms_xx_constraint_UQ_cMacAddress11] UNIQUE NONCLUSTERED ([cMacAddress1] ASC),
CONSTRAINT [tmp_ms_xx_constraint_UQ_cMacAddress21] UNIQUE NONCLUSTERED ([cMacAddress2] ASC)
);
IF EXISTS (SELECT TOP 1 1
FROM [dbo].[tWbms])
BEGIN
INSERT INTO [dbo].[tmp_ms_xx_tWbms] ([cProductID], [cType], [cProductNo], [cSpareValue], [cDateTime])
SELECT [cProductID],
[cType],
[cProductNo],
[cSpareValue],
[cDateTime]
FROM [dbo].[tWbms]
ORDER BY [cProductID] ASC;
END
DROP TABLE [dbo].[tWbms];
EXECUTE sp_rename N'[dbo].[tmp_ms_xx_tWbms]', N'tWbms';
EXECUTE sp_rename N'[dbo].[tmp_ms_xx_constraint_PK_cProductKey1]', N'PK_cProductKey', N'OBJECT';
EXECUTE sp_rename N'[dbo].[tmp_ms_xx_constraint_UQ_cMacAddress11]', N'UQ_cMacAddress1', N'OBJECT';
EXECUTE sp_rename N'[dbo].[tmp_ms_xx_constraint_UQ_cMacAddress21]', N'UQ_cMacAddress2', N'OBJECT';
COMMIT TRANSACTION;
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
GO