From 24a2eed6179508df0a509d715a45fea2ec8a9aff Mon Sep 17 00:00:00 2001 From: SHM Date: Thu, 30 Oct 2025 10:43:27 +0900 Subject: [PATCH] =?UTF-8?q?[=EC=84=B1=ED=98=84=EB=AA=A8]=20CPMeta=20DB=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DBPatch/DBPatch_CPMeta_Create.bat | 20 ++ DBPatch/DBPatch_CPMeta_Update.bat | 23 ++ DBPatch/Tool_CPMeta_Scaffold.bat | 4 + .../sqlScripts/SystemX.DB.CPMeta_Create.sql | 290 ++++++++++++++++++ .../sqlScripts/SystemX.DB.CPMeta_Update.sql | 65 ++++ .../dacpac/SystemX.DB.CPMeta.dacpac | Bin 0 -> 2656 bytes Projects/DLL/SystemX.Core.DB.dll | Bin 73216 -> 75264 bytes .../CPMeta/Context/CPMetaContext.cs | 35 +++ .../CPMeta/Tables/tWbmsMetum.cs | 19 ++ .../SystemX.DB.CPMeta.sqlproj | 73 +++++ .../dbo/Tables/tWbmsMeta.sql | 13 + Projects/SystemX.Core/SystemX.Core.sln | 9 + 12 files changed, 551 insertions(+) create mode 100644 DBPatch/DBPatch_CPMeta_Create.bat create mode 100644 DBPatch/DBPatch_CPMeta_Update.bat create mode 100644 DBPatch/Tool_CPMeta_Scaffold.bat create mode 100644 DBPatch/sqlScripts/SystemX.DB.CPMeta_Create.sql create mode 100644 DBPatch/sqlScripts/SystemX.DB.CPMeta_Update.sql create mode 100644 DBPatch/sqlScripts/dacpac/SystemX.DB.CPMeta.dacpac create mode 100644 Projects/SystemX.Core/SystemX.Core.DB/CPMeta/Context/CPMetaContext.cs create mode 100644 Projects/SystemX.Core/SystemX.Core.DB/CPMeta/Tables/tWbmsMetum.cs create mode 100644 Projects/SystemX.Core/SystemX.Core.DB/SystemX.DB.CPMeta/SystemX.DB.CPMeta.sqlproj create mode 100644 Projects/SystemX.Core/SystemX.Core.DB/SystemX.DB.CPMeta/dbo/Tables/tWbmsMeta.sql diff --git a/DBPatch/DBPatch_CPMeta_Create.bat b/DBPatch/DBPatch_CPMeta_Create.bat new file mode 100644 index 0000000..f5a545a --- /dev/null +++ b/DBPatch/DBPatch_CPMeta_Create.bat @@ -0,0 +1,20 @@ +@echo off +CD ./sqlScripts/ + +::log +IF NOT EXIST .\logs mkdir logs + +::DB 정의 스키마 +SET Schema=SystemX.DB.CPMeta + +::연결정보 +SET ServerIP=127.0.0.1 +SET ServerPort=1433 +SET UserID=SystemX +SET Passwd=X +SET DBName=CPMeta + +::Default DB +@echo off +CALL _CreateDB.bat %Schema% %ServerIP% %ServerPort% %UserID% %Passwd% %DBName% +CALL _CreateDB.bat %Schema% %ServerIP% %ServerPort% %UserID% %Passwd% %DBName%_DEV \ No newline at end of file diff --git a/DBPatch/DBPatch_CPMeta_Update.bat b/DBPatch/DBPatch_CPMeta_Update.bat new file mode 100644 index 0000000..bf1d475 --- /dev/null +++ b/DBPatch/DBPatch_CPMeta_Update.bat @@ -0,0 +1,23 @@ +@echo off +CD .\sqlScripts\ + +::log +IF NOT EXIST .\logs mkdir logs + +::DB 정의 스키마 +SET Schema=SystemX.DB.CPMeta + +::연결정보 +SET ServerIP=127.0.0.1 +SET ServerPort=1433 +SET UserID=SystemX +SET Passwd=X +SET DBName=CPMeta + +@echo off +::generate update script +CALL _UpdateScriptGenerate.bat %Schema% %ServerIP% %ServerPort% %UserID% %Passwd% %DBName% + +::Default DB +CALL _UpdateDB.bat %Schema% %ServerIP% %ServerPort% %UserID% %Passwd% %DBName% +CALL _UpdateDB.bat %Schema% %ServerIP% %ServerPort% %UserID% %Passwd% %DBName%_DEV \ No newline at end of file diff --git a/DBPatch/Tool_CPMeta_Scaffold.bat b/DBPatch/Tool_CPMeta_Scaffold.bat new file mode 100644 index 0000000..d1a6ff5 --- /dev/null +++ b/DBPatch/Tool_CPMeta_Scaffold.bat @@ -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=CPMeta; TrustServerCertificate=true;" Microsoft.EntityFrameworkCore.SqlServer --namespace SystemX.Core.DB --context-dir CPMeta\Context --output-dir CPMeta\Tables -f --use-database-names --no-onconfiguring \ No newline at end of file diff --git a/DBPatch/sqlScripts/SystemX.DB.CPMeta_Create.sql b/DBPatch/sqlScripts/SystemX.DB.CPMeta_Create.sql new file mode 100644 index 0000000..6b7c6bc --- /dev/null +++ b/DBPatch/sqlScripts/SystemX.DB.CPMeta_Create.sql @@ -0,0 +1,290 @@ +/* +SystemX.DB.CPMeta의 배포 스크립트 + +이 코드는 도구를 사용하여 생성되었습니다. +파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +변경 내용이 손실됩니다. +*/ + +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.CPMeta" +:setvar DefaultFilePrefix "SystemX.DB.CPMeta" +: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].[tWbmsMeta]을(를) 만드는 중...'; + + +GO +CREATE TABLE [dbo].[tWbmsMeta] ( + [cProductID] NVARCHAR (50) NOT NULL, + [cMacAddress] NVARCHAR (50) NULL, + [cType] NVARCHAR (20) NULL, + [cProductNo] NVARCHAR (50) NULL, + [cSpareValue] NVARCHAR (200) NULL, + [cDateTime] DATETIME2 (7) NOT NULL, + CONSTRAINT [PK_cProductKey] PRIMARY KEY CLUSTERED ([cProductID] ASC), + CONSTRAINT [UQ_cMacAddress] UNIQUE NONCLUSTERED ([cMacAddress] ASC) +); + + +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 diff --git a/DBPatch/sqlScripts/SystemX.DB.CPMeta_Update.sql b/DBPatch/sqlScripts/SystemX.DB.CPMeta_Update.sql new file mode 100644 index 0000000..fc91ec7 --- /dev/null +++ b/DBPatch/sqlScripts/SystemX.DB.CPMeta_Update.sql @@ -0,0 +1,65 @@ +/* +CPMeta의 배포 스크립트 + +이 코드는 도구를 사용하여 생성되었습니다. +이 파일을 변경하면 잘못된 동작이 발생할 수 있으며 코드가 다시 생성되면 +이러한 변경 내용이 손실됩니다. +*/ + +GO +SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON; + +SET NUMERIC_ROUNDABORT OFF; + + +GO +/* +:setvar DatabaseName "CPMeta" +:setvar DefaultFilePrefix "CPMeta" +:setvar DefaultDataPath "D:\20_MSSQL\DATA\" +:setvar DefaultLogPath "D:\20_MSSQL\DATA\" +*/ + +GO +:on error exit +GO +/* +SQLCMD 모드를 검색하고 SQLCMD 모드가 지원되지 않는 경우 스크립트 실행을 사용하지 않도록 설정합니다. +SQLCMD 모드를 사용하도록 설정한 후 스크립트를 다시 사용하도록 설정하려면 다음을 실행합니다. +NOEXEC를 끕니다. +*/ +:setvar __IsSqlCmdEnabled "True" +GO +IF N'$(__IsSqlCmdEnabled)' NOT LIKE N'True' + BEGIN + PRINT N'이 스크립트를 실행하려면 SQLCMD 모드를 사용하도록 설정해야 합니다.'; + SET NOEXEC ON; + END + + +GO +USE [$(DatabaseName)]; + + +GO +/* +테이블 [dbo].[tWbmsMeta]의 열 [[dbo].[tWbmsMeta].[ctest]]을(를) 추가해야 하지만 해당 열에 기본값이 없으며 NULL 값을 허용하지 않습니다. 테이블에 데이터가 있으면 ALTER 스크립트가 실행되지 않습니다. 이러한 문제를 방지하려면 열에 기본값을 추가 및 해당 열을 NULL 값을 허용하도록 표시하거나 스마트 기본값을 배포 옵션으로서 생성할 수 있도록 하십시오. +*/ + +IF EXISTS (select top 1 1 from [dbo].[tWbmsMeta]) + RAISERROR (N'행이 발견되었습니다. 데이터가 손실될 수 있으므로 스키마 업데이트가 종료됩니다.', 16, 127) WITH NOWAIT + +GO +PRINT N'테이블 [dbo].[tWbmsMeta]을(를) 변경하는 중...'; + + +GO +ALTER TABLE [dbo].[tWbmsMeta] + ADD [ctest] DATETIME2 (7) NOT NULL; + + +GO +PRINT N'업데이트가 완료되었습니다.'; + + +GO diff --git a/DBPatch/sqlScripts/dacpac/SystemX.DB.CPMeta.dacpac b/DBPatch/sqlScripts/dacpac/SystemX.DB.CPMeta.dacpac new file mode 100644 index 0000000000000000000000000000000000000000..c4c34c3e39f95ac4961455c5cb33348550af0029 GIT binary patch literal 2656 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 Q0s#Cwi@meE3I22X8!91^umAu6 literal 0 HcmV?d00001 diff --git a/Projects/DLL/SystemX.Core.DB.dll b/Projects/DLL/SystemX.Core.DB.dll index 12d869899e0ac4999b7abc321e928884897c301e..76df2a2733f5c46e5caafc702dbdf68bebfe6abb 100644 GIT binary patch literal 75264 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

hx<;%J=-@70?E@ z32s|r0MNG+?QNwyxT*3MZn*H@gm9JR<_jK9!R=k%$}mR;gyN%tk03Mwomz4O0gtRe zBYg(SOF9=C-ZasF^SBKGAE-rm3Gc5*ZF{&G!khaKVUa#1Me+BLKbD&(d-#2jDWN>V zt%@n!9$7|tLHKQbd6e*m2ybLO=+N_Na;7o1^S4d3-d#r{P|pl%oOU19dl~e!k2iLX zkZ!>@Uh^l{H-+1sP5dbwoZ+v`6d~hnkw8y8fX%evZ5)ik?N;dqC8_VO!S9;-tiG(B z=gOYuFJG_rd*>k~ul>{HD7>5dm!Nkif4A4X&%T6PM+?wzOU=QPGiafjKs$;DDRPK5 z<`?94ERPh`fZxImt6BWjK)nrK9+|0wdK-W24+8AHSsEKI zdm`?l)~&TJHE}_4MeAB=O{%T7TDQ7u_4l0To;x#PZbIzG-{<@L>{rIEE132nm8L@Myhr3|-g9UP5?(;?QzVNZFR&PHUxMeAp#yMC`71-1iSf$iF(lNw3hK;07?PH5MoKo)A=DFI@GkmOL4llfzV zRW9j0DO-+ayQOEJIO?!+zTGDr6*?e;@I<*^|MaD8!q zuaVt)ImI!(T9PZ}k(R+0UL{wvbBYc*_$7#jg<{l{_+KsovszUJxt_uKWQ z781~xjLyEa)X5@ZBa!9M62#4xvk?=$hCbdMeLOJH#~QUOeXPZ7uaAodcunix%Pp?K z!W(?9fs=jb)<=BVcGO8;rN?e$+`j*doR?Uylj9BapMdb}txS2Y>>NmF62 zY9hBF^AslHT&l&GW45B-@~q#E35}1~oYl;swTfQ9?PqgVqlH+qH)ki=oYnB5wThgx zn9C*L?piG_M2wY!rp{$u*ZLR!=(Hm*Z`bE6HoecaY_HGT&1DwKxomQ>3b-Wcf|*ZOR4ju#K~x+cF@MsW>J2!qd6@YjO!)U{CJ zW{jPHs3JP-@Me~bz;;anA>S8BAQboliLMbnkMS?#)Gy#Hp3r~vsh@-V5bEJdsCFWP z7uTyNhCQ})bjGP)wog^4sc^bSD)q!%FV$D=Q}xtTlbK3AG3)OpoZdWvWHn0F=s0Lh95j+&hxUVr+3n>dK`89eoEcR5(rqDoEAhbNF=TzXG(

)ejI(wV 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 options) + : base(options) + { + } + + public virtual DbSet tWbmsMeta { get; set; } + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.cProductID).HasName("PK_cProductKey"); + + entity.HasIndex(e => e.cMacAddress, "UQ_cMacAddress").IsUnique(); + + entity.Property(e => e.cProductID).HasMaxLength(50); + entity.Property(e => e.cMacAddress).HasMaxLength(50); + entity.Property(e => e.cProductNo).HasMaxLength(50); + entity.Property(e => e.cSpareValue).HasMaxLength(200); + entity.Property(e => e.cType).HasMaxLength(20); + }); + + OnModelCreatingPartial(modelBuilder); + } + + partial void OnModelCreatingPartial(ModelBuilder modelBuilder); +} diff --git a/Projects/SystemX.Core/SystemX.Core.DB/CPMeta/Tables/tWbmsMetum.cs b/Projects/SystemX.Core/SystemX.Core.DB/CPMeta/Tables/tWbmsMetum.cs new file mode 100644 index 0000000..204a420 --- /dev/null +++ b/Projects/SystemX.Core/SystemX.Core.DB/CPMeta/Tables/tWbmsMetum.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; + +namespace SystemX.Core.DB; + +public partial class tWbmsMetum +{ + public string cProductID { get; set; } = null!; + + public string? cMacAddress { get; set; } + + public string? cType { get; set; } + + public string? cProductNo { get; set; } + + public string? cSpareValue { get; set; } + + public DateTime cDateTime { get; set; } +} diff --git a/Projects/SystemX.Core/SystemX.Core.DB/SystemX.DB.CPMeta/SystemX.DB.CPMeta.sqlproj b/Projects/SystemX.Core/SystemX.Core.DB/SystemX.DB.CPMeta/SystemX.DB.CPMeta.sqlproj new file mode 100644 index 0000000..def6caf --- /dev/null +++ b/Projects/SystemX.Core/SystemX.Core.DB/SystemX.DB.CPMeta/SystemX.DB.CPMeta.sqlproj @@ -0,0 +1,73 @@ + + + + Debug + AnyCPU + SystemX.DB.CPMeta + 2.0 + 4.1 + {17ab3eb0-6388-401f-96df-e45ba58a548e} + Microsoft.Data.Tools.Schema.Sql.Sql160DatabaseSchemaProvider + Database + + + SystemX.DB.CPMeta + SystemX.DB.CPMeta + 1042,CI + BySchemaAndSchemaType + True + v4.7.2 + CS + Properties + False + True + True + True + Korean_Wansung_CI_AS + + + bin\Release\ + $(MSBuildProjectName).sql + False + pdbonly + true + false + true + prompt + 4 + + + bin\Debug\ + $(MSBuildProjectName).sql + true + true + full + false + true + true + prompt + 4 + False + + + 11.0 + + True + 11.0 + + + + + + + + + + + + + xcopy /y $(ProjectDir)$(OutputPath)$(TargetName)_Create.sql $(SolutionDir)..\..\DBPatch\sqlScripts\ + +xcopy /y $(ProjectDir)$(OutputPath)$(TargetName).dacpac $(SolutionDir)..\..\DBPatch\sqlScripts\dacpac\ + + \ No newline at end of file diff --git a/Projects/SystemX.Core/SystemX.Core.DB/SystemX.DB.CPMeta/dbo/Tables/tWbmsMeta.sql b/Projects/SystemX.Core/SystemX.Core.DB/SystemX.DB.CPMeta/dbo/Tables/tWbmsMeta.sql new file mode 100644 index 0000000..2e56216 --- /dev/null +++ b/Projects/SystemX.Core/SystemX.Core.DB/SystemX.DB.CPMeta/dbo/Tables/tWbmsMeta.sql @@ -0,0 +1,13 @@ +CREATE TABLE [dbo].[tWbmsMeta] +( + [cProductID] NVARCHAR(50) NOT NULL, + [cMacAddress] NVARCHAR(50) NULL, + [cType] NVARCHAR(20) NULL, + [cProductNo] NVARCHAR(50) NULL, + + [cSpareValue] NVARCHAR(200) NULL, + [cDateTime] DATETIME2 NOT NULL, + + CONSTRAINT PK_cProductKey PRIMARY KEY (cProductID), + CONSTRAINT UQ_cMacAddress UNIQUE (cMacAddress), +) diff --git a/Projects/SystemX.Core/SystemX.Core.sln b/Projects/SystemX.Core/SystemX.Core.sln index 9c93e32..85ea2bc 100644 --- a/Projects/SystemX.Core/SystemX.Core.sln +++ b/Projects/SystemX.Core/SystemX.Core.sln @@ -19,6 +19,8 @@ Project("{00D1A9C2-B5F0-4AF3-8072-F6C62B433612}") = "SystemX.DB.CPXV2", "DB\Syst EndProject Project("{00D1A9C2-B5F0-4AF3-8072-F6C62B433612}") = "SystemX.DB.CPXV2Log", "DB\SystemX.DB.CPXV2Log\SystemX.DB.CPXV2Log.sqlproj", "{D9439C52-76B5-4908-9B0D-43D1F52EC942}" EndProject +Project("{00D1A9C2-B5F0-4AF3-8072-F6C62B433612}") = "SystemX.DB.CPMeta", "SystemX.Core.DB\SystemX.DB.CPMeta\SystemX.DB.CPMeta.sqlproj", "{17AB3EB0-6388-401F-96DF-E45BA58A548E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -63,6 +65,12 @@ Global {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 + {17AB3EB0-6388-401F-96DF-E45BA58A548E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {17AB3EB0-6388-401F-96DF-E45BA58A548E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {17AB3EB0-6388-401F-96DF-E45BA58A548E}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {17AB3EB0-6388-401F-96DF-E45BA58A548E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {17AB3EB0-6388-401F-96DF-E45BA58A548E}.Release|Any CPU.Build.0 = Release|Any CPU + {17AB3EB0-6388-401F-96DF-E45BA58A548E}.Release|Any CPU.Deploy.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -73,6 +81,7 @@ Global {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} + {17AB3EB0-6388-401F-96DF-E45BA58A548E} = {C8D5274F-AC00-46C7-1F8D-E88E81087A52} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {A26A3BD0-2161-41FA-949A-DEA966E8F798}