/* VPKI_DataDB의 배포 스크립트 이 코드는 도구를 사용하여 생성되었습니다. 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 변경 내용이 손실됩니다. */ GO SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON; SET NUMERIC_ROUNDABORT OFF; GO /* :setvar DatabaseName "VPKI_DataDB" :setvar DefaultFilePrefix "VPKI_DataDB" :setvar DefaultDataPath "D:\MSSQL\DATA\" :setvar DefaultLogPath "D:\MSSQL\DATA\" */ 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 [$(DatabaseName)]; GO /* [dbo].[tCertificate].[cDn] 열이 삭제되므로 데이터 손실이 발생할 수 있습니다. 테이블 [dbo].[tCertificate]의 열 [[dbo].[tCertificate].[cCsrsignature]]을(를) 추가해야 하지만 해당 열에 기본값이 없으며 NULL 값을 허용하지 않습니다. 테이블에 데이터가 있으면 ALTER 스크립트가 실행되지 않습니다. 이러한 문제를 방지하려면 열에 기본값을 추가 및 해당 열을 NULL 값을 허용하도록 표시하거나 스마트 기본값을 배포 옵션으로서 생성할 수 있도록 하십시오. [dbo].[tCertificate] 테이블의 cCert 열을 NULL에서 NOT NULL로 변경해야 합니다. 테이블에 데이터가 있으면 ALTER 스크립트가 실행되지 않습니다. 이러한 문제를 방지하려면 모든 행에 대해 이 열에 값을 추가 또는 해당 열을 NULL 값을 허용하도록 표시하거나 스마트 기본값을 배포 옵션으로서 생성할 수 있도록 하십시오. [dbo].[tCertificate] 테이블의 cMessage 열을 NULL에서 NOT NULL로 변경해야 합니다. 테이블에 데이터가 있으면 ALTER 스크립트가 실행되지 않습니다. 이러한 문제를 방지하려면 모든 행에 대해 이 열에 값을 추가 또는 해당 열을 NULL 값을 허용하도록 표시하거나 스마트 기본값을 배포 옵션으로서 생성할 수 있도록 하십시오. */ IF EXISTS (select top 1 1 from [dbo].[tCertificate]) RAISERROR (N'행이 발견되었습니다. 데이터가 손실될 수 있으므로 스키마 업데이트가 종료됩니다.', 16, 127) WITH NOWAIT GO /* [dbo].[tTbscsr].[cCsrsignature] 열이 삭제되므로 데이터 손실이 발생할 수 있습니다. [dbo].[tTbscsr].[cTbscsrOrigin] 열이 삭제되므로 데이터 손실이 발생할 수 있습니다. 테이블 [dbo].[tTbscsr]의 열 [[dbo].[tTbscsr].[cDn]]을(를) 추가해야 하지만 해당 열에 기본값이 없으며 NULL 값을 허용하지 않습니다. 테이블에 데이터가 있으면 ALTER 스크립트가 실행되지 않습니다. 이러한 문제를 방지하려면 열에 기본값을 추가 및 해당 열을 NULL 값을 허용하도록 표시하거나 스마트 기본값을 배포 옵션으로서 생성할 수 있도록 하십시오. 테이블 [dbo].[tTbscsr]의 열 [[dbo].[tTbscsr].[cOriginTbscsr]]을(를) 추가해야 하지만 해당 열에 기본값이 없으며 NULL 값을 허용하지 않습니다. 테이블에 데이터가 있으면 ALTER 스크립트가 실행되지 않습니다. 이러한 문제를 방지하려면 열에 기본값을 추가 및 해당 열을 NULL 값을 허용하도록 표시하거나 스마트 기본값을 배포 옵션으로서 생성할 수 있도록 하십시오. */ IF EXISTS (select top 1 1 from [dbo].[tTbscsr]) RAISERROR (N'행이 발견되었습니다. 데이터가 손실될 수 있으므로 스키마 업데이트가 종료됩니다.', 16, 127) WITH NOWAIT GO PRINT N'[dbo].[tCertificate] 테이블 다시 빌드 시작...'; GO BEGIN TRANSACTION; SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; SET XACT_ABORT ON; CREATE TABLE [dbo].[tmp_ms_xx_tCertificate] ( [cCuid] BIGINT NOT NULL, [cCsrsignature] NVARCHAR (1024) NOT NULL, [cTierCode] NVARCHAR (20) NOT NULL, [cUnitCode] NVARCHAR (20) NOT NULL, [cVehicleCode] NVARCHAR (20) NOT NULL, [cLocalCode] NVARCHAR (20) NOT NULL, [cBrandCode] NVARCHAR (20) NOT NULL, [cCsr] NVARCHAR (2048) NOT NULL, [cCert] NVARCHAR (2048) NOT NULL, [cMessage] NVARCHAR (250) NOT NULL, [cIssueCount] INT NOT NULL, [cDateTime] DATETIME2 (7) NOT NULL, PRIMARY KEY CLUSTERED ([cCuid] ASC) ); IF EXISTS (SELECT TOP 1 1 FROM [dbo].[tCertificate]) BEGIN INSERT INTO [dbo].[tmp_ms_xx_tCertificate] ([cCuid], [cCsr], [cTierCode], [cUnitCode], [cVehicleCode], [cLocalCode], [cBrandCode], [cCert], [cMessage], [cIssueCount], [cDateTime]) SELECT [cCuid], [cCsr], [cTierCode], [cUnitCode], [cVehicleCode], [cLocalCode], [cBrandCode], [cCert], [cMessage], [cIssueCount], [cDateTime] FROM [dbo].[tCertificate] ORDER BY [cCuid] ASC; END DROP TABLE [dbo].[tCertificate]; EXECUTE sp_rename N'[dbo].[tmp_ms_xx_tCertificate]', N'tCertificate'; COMMIT TRANSACTION; SET TRANSACTION ISOLATION LEVEL READ COMMITTED; GO PRINT N'[dbo].[tTbscsr] 테이블 다시 빌드 시작...'; GO BEGIN TRANSACTION; SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; SET XACT_ABORT ON; CREATE TABLE [dbo].[tmp_ms_xx_tTbscsr] ( [cCuid] BIGINT IDENTITY (1, 1) NOT NULL, [cIftid] NVARCHAR (100) NOT NULL, [cMacaddr] NVARCHAR (100) NOT NULL, [cWmi] NVARCHAR (20) NOT NULL, [cIdType] NVARCHAR (10) NOT NULL, [cSupplierId] NVARCHAR (10) NOT NULL, [cDc] NVARCHAR (20) NOT NULL, [cTierCode] NVARCHAR (20) NOT NULL, [cUnitCode] NVARCHAR (20) NOT NULL, [cPublickey] NVARCHAR (1024) NOT NULL, [cCertType] NVARCHAR (20) NOT NULL, [cOriginTbscsr] NVARCHAR (4000) NOT NULL, [cHashedTbscsr] NVARCHAR (1024) NOT NULL, [cPcid] NVARCHAR (50) NOT NULL, [cDn] NVARCHAR (250) NOT NULL, [cDateTime] DATETIME2 (7) NOT NULL, PRIMARY KEY CLUSTERED ([cCuid] ASC) ); IF EXISTS (SELECT TOP 1 1 FROM [dbo].[tTbscsr]) BEGIN SET IDENTITY_INSERT [dbo].[tmp_ms_xx_tTbscsr] ON; INSERT INTO [dbo].[tmp_ms_xx_tTbscsr] ([cCuid], [cIftid], [cMacaddr], [cWmi], [cIdType], [cSupplierId], [cDc], [cTierCode], [cUnitCode], [cPublickey], [cCertType], [cHashedTbscsr], [cPcid], [cDateTime]) SELECT [cCuid], [cIftid], [cMacaddr], [cWmi], [cIdType], [cSupplierId], [cDc], [cTierCode], [cUnitCode], [cPublickey], [cCertType], [cHashedTbscsr], [cPcid], [cDateTime] FROM [dbo].[tTbscsr] ORDER BY [cCuid] ASC; SET IDENTITY_INSERT [dbo].[tmp_ms_xx_tTbscsr] OFF; END DROP TABLE [dbo].[tTbscsr]; EXECUTE sp_rename N'[dbo].[tmp_ms_xx_tTbscsr]', N'tTbscsr'; COMMIT TRANSACTION; SET TRANSACTION ISOLATION LEVEL READ COMMITTED; GO PRINT N'업데이트가 완료되었습니다.'; GO