아모센스 마킹 gui
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

118 lines
3.9 KiB

-- ==========================================================
-- 양산형 테스트 기기 모니터링 시스템 MSSQL 2012 DB 구성 스크립트
-- 작성일: 2026-06-22
-- 호환 버전: Microsoft SQL Server 2012 이상
-- ==========================================================
USE [master];
GO
-- 데이터베이스 생성 (존재하지 않을 경우에만 생성)
IF NOT EXISTS (SELECT name FROM sys.databases WHERE name = N'MarkingDb')
BEGIN
CREATE DATABASE [MarkingDb];
END
GO
USE [MarkingDb];
GO
-- ==========================================
-- 1. [Users] 테이블 생성 (작업자 정보 및 비밀번호 관리)
-- ==========================================
IF OBJECT_ID(N'[dbo].[Users]', N'U') IS NULL
BEGIN
CREATE TABLE [dbo].[Users] (
[Id] INT IDENTITY(1,1) NOT NULL,
[OperatorId] VARCHAR(50) NOT NULL,
[Password] VARCHAR(50) NOT NULL,
[Name] NVARCHAR(50) NULL,
[IsActive] BIT DEFAULT 1 NOT NULL,
CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [UQ_Users_OperatorId] UNIQUE ([OperatorId])
);
END
GO
-- 기본 테스트 계정 데이터 적재
IF NOT EXISTS (SELECT 1 FROM [dbo].[Users] WHERE [OperatorId] = 'test')
BEGIN
INSERT INTO [dbo].[Users] ([OperatorId], [Password], [Name], [IsActive])
VALUES ('test', 'test', '테스트작업자', 1);
END
GO
IF NOT EXISTS (SELECT 1 FROM [dbo].[Users] WHERE [OperatorId] = 'admin')
BEGIN
INSERT INTO [dbo].[Users] ([OperatorId], [Password], [Name], [IsActive])
VALUES ('admin', 'admin', '시스템관리자', 1);
END
GO
IF NOT EXISTS (SELECT 1 FROM [dbo].[Users] WHERE [OperatorId] = 'su')
BEGIN
INSERT INTO [dbo].[Users] ([OperatorId], [Password], [Name], [IsActive])
VALUES ('su', 'su', '최고권한자', 1);
END
GO
-- ==========================================
-- 2. [Marking] 테이블 생성 (성능 측정 결과 적재)
-- ==========================================
IF OBJECT_ID(N'[dbo].[Marking]', N'U') IS NULL
BEGIN
CREATE TABLE [dbo].[Marking] (
[IC_SN] VARCHAR(50) NOT NULL,
[Marking_QR] NVARCHAR(100) NOT NULL,
[Maker] NVARCHAR(10) NOT NULL,
[Model] NVARCHAR(10) NOT NULL,
[Variant_1] NVARCHAR(10) NOT NULL,
[Variant_2] NVARCHAR(10) NOT NULL,
[Operator] NVARCHAR(10) NOT NULL,
[Production_Date] DATETIME2(0) NOT NULL,
[Line] NVARCHAR(10) NOT NULL,
[Lot_No] NVARCHAR(8) NOT NULL,
[Jig_No] NVARCHAR(10) NOT NULL,
[PT_Vol_1] DECIMAL(4, 2) NOT NULL,
[PT_Current_1] DECIMAL(4, 2) NOT NULL,
[PT_Resistance_1] DECIMAL(5, 3) NOT NULL,
[Result] NVARCHAR(5) NOT NULL,
[Spare_1] NVARCHAR(30) NULL,
[Spare_2] NVARCHAR(30) NULL,
[Spare_3] NVARCHAR(30) NULL,
[Spare_4] NVARCHAR(30) NULL,
CONSTRAINT [PK_Marking] PRIMARY KEY CLUSTERED ([IC_SN] ASC),
CONSTRAINT [UQ_Marking_Marking_QR] UNIQUE ([Marking_QR])
);
-- 시리얼 번호(IC_SN) 조회용 인덱스는 클러스터드 기본키로 지정되었으므로 생략 또는 추가 필요 시 생성
END
GO
-- ==========================================
-- 3. [CheckOperator] 로그인 검증용 저장 프로시저 생성
-- ==========================================
IF OBJECT_ID(N'[dbo].[CheckOperator]', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[CheckOperator];
END
GO
CREATE PROCEDURE [dbo].[CheckOperator]
@Operator VARCHAR(50),
@Password VARCHAR(50),
@ProcessName VARCHAR(50) = NULL
AS
BEGIN
SET NOCOUNT ON;
-- 대소문자 구분 없이 입력 ID와 비밀번호 매칭 여부를 카운트(0 또는 1)로 리턴
SELECT COUNT(*)
FROM [dbo].[Users]
WHERE UPPER([OperatorId]) = UPPER(@Operator)
AND [Password] = @Password
AND [IsActive] = 1;
END;
GO