기존 검사 테이블에 추가 할 검사 제약 조건은 다음과 같습니다.테이블 열에 대한 SQL 검사 제약 조건
ALTER TABLE [dbo].[PROCESS_UPLOADDATA]
ADD CONSTRAINT [PROCESS_RequireKeyFileOnMODE_Constraint]
CHECK (
(RTRIM(LTRIM(LOWER(UPLOAD_MODE))) ='sftp'
AND DATALENGTH(KEYFILE_PATH) > 2)
)
UPLOAD_MODE 열은 NULLS를 허용하지 않으며 ftp 또는 sftp와 같은 값을 갖는 열입니다. KEYFILE_PATH 열은 IS NULL 기본 설정이있는 NVARCHAR (400) 열입니다. 그러나 UPLOAD_MODE의 값이 'sftp'로 설정된 경우 키 파일 경로도 제공되는지 확인해야합니다.
ALTER TABLE 문이 CHECK 제약 조건 "PROCESS_RequireKeyFileOnMODE_Constraint"와 충돌했습니다. 데이터베이스 "FILECONTROL", 테이블 "dbo.PROCESS_UPLOADDATA"에서 충돌이 발생했습니다.
그러나 실행하면 다음과 같은 오류 메시지가 나타납니다. 어떤 도움을 주셔서 감사합니다. SQL 서버 데이터베이스! 미리 감사드립니다.
//UPDATED SQL CHECK
ALTER TABLE [dbo].[PROCESS_UPLOADDATA]
ADD CONSTRAINT [PROCESS_RequireKeyFileOnMODE_Constraint]
CHECK (
CASE
WHEN (RTRIM(LTRIM(LOWER(UPLOAD_MODE))) ='sftp')
AND (DATALENGTH(KEYFILE_PATH) > 2)
THEN 1
WHEN (RTRIM(LTRIM(LOWER(UPLOAD_MODE))) != 'sftp')
AND (DATALENGTH(KEYFILE_PATH) < 2)
THEN 1
WHEN (RTRIM(LTRIM(LOWER(UPLOAD_MODE))) != 'sftp')
AND (KEYFILE_PATH IS NULL)
THEN 1
ELSE 0
END =0
)
Andomar의 제안/explaination을 고려하면, 위 조립 할 수 있었고, 내가 여기에 필요한 논리에 대한 수정하시기 바랍니다 경우 확인하고 싶었다. 다시 미리 감사드립니다.
어떤 데이터베이스인가요? –
SQL Server 데이터베이스 – Kobojunkie
기존 레코드가이 새로운 제약 조건을 준수하고 있습니까? –