-- ============================================================================ -- Project: NE1aW 온압센서 -- Document: dbo.EOL Table Schema (Simplified Version) -- Author: Antigravity AI -- Date: 2026-05-28 -- Description: 사용자 요구사항(ID, 좌/우, SPEC UL, SPEC LL, 누설값, 판정)에 맞추어 단순화된 스키마. -- 재검사 이력 추적을 위해 Seq(PK) 및 InspectDateTime(일시) 컬럼 추가. -- ============================================================================ -- 1. 데이터베이스 존재 여부 확인 및 자동 생성 IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = 'NE1aW_PT_SENSOR') BEGIN CREATE DATABASE [NE1aW_PT_SENSOR]; PRINT 'Database [NE1aW_PT_SENSOR] created successfully.'; END GO USE [NE1aW_PT_SENSOR]; GO -- 2. 기존 테이블이 존재할 경우 삭제 IF OBJECT_ID('dbo.EOL', 'U') IS NOT NULL BEGIN DROP TABLE dbo.EOL; PRINT 'Existing [dbo].[EOL] table dropped.'; END GO -- 3. 단순화된 테이블 생성 CREATE TABLE [dbo].[EOL] ( [InspectDate] NVARCHAR(10) NOT NULL, -- 검사 날짜 (YYYY-MM-DD) [InspectTime] NVARCHAR(8) NOT NULL, -- 검사 시간 (HH:MM:SS) [ID] NVARCHAR(30) NOT NULL, -- 센서 ID (ProductId) (기본키) [Channel] NVARCHAR(10) NOT NULL, -- 좌 / 우 (LEFT / RIGHT) [SpecUL] NVARCHAR(10) NOT NULL, -- SPEC UL [SpecLL] NVARCHAR(10) NOT NULL, -- SPEC LL [LeakValue] NVARCHAR(20) NOT NULL, -- 누설 측정값 (MeasuredValue) [Result] NVARCHAR(5) NOT NULL, -- 판정 결과 (OK / NG) CONSTRAINT [PK_EOL_ID] PRIMARY KEY CLUSTERED ([ID] ASC) ); GO PRINT 'Table [dbo].[EOL] created successfully with simplified columns and ID as Primary Key.'; GO -- ============================================================================ -- [부록] 테스트 시나리오 SQL 예시 (단순화 버전) -- ============================================================================ /* -- 1. 테스트용 기본 데이터 INSERT (정상 삽입) INSERT INTO [dbo].[EOL] ( [InspectDate], [InspectTime], [ID], [Channel], [SpecUL], [SpecLL], [LeakValue], [Result] ) VALUES ( '2026-06-02', '14:48:51', 'IC_SIMPLE_0001', 'LEFT', '1.00', '-1.00', '0.125', 'OK' ); -- 데이터 확인 SELECT * FROM [dbo].[EOL]; -- 2. 동일 ID 재검사 시 MERGE 문을 이용한 UPSERT 테스트 (정상 업데이트 확인) -- 예상 결과: 기존 'IC_SIMPLE_0001' 레코드의 LeakValue가 '0.098'로 업데이트됨 MERGE INTO [dbo].[EOL] AS Target USING (SELECT 'IC_SIMPLE_0001' AS ID) AS Source ON (Target.ID = Source.ID) WHEN MATCHED THEN UPDATE SET Target.Channel = 'LEFT', Target.SpecUL = '1.00', Target.SpecLL = '-1.00', Target.LeakValue = '0.098', -- 업데이트될 새 값 Target.Result = 'OK', Target.InspectDate = '2026-06-02', Target.InspectTime = '14:48:00' WHEN NOT MATCHED THEN INSERT ([ID], [Channel], [SpecUL], [SpecLL], [LeakValue], [Result], [InspectDate], [InspectTime]) VALUES ('IC_SIMPLE_0001', 'LEFT', '1.00', '-1.00', '0.098', 'OK', '2026-06-02', '14:48:00'); -- 데이터 확인 (값 업데이트 확인) SELECT * FROM [dbo].[EOL]; */