본문에서 제안 사항을 제공 할 수 있습니까?이 오류가 나타나는 이유는 무엇입니까?INSERT 문이 CHECK 제약 조건과 충돌했습니다.
System.Data.SqlClient.SqlException : INSERT 문이 CHECK 제약 조건 "CK_ GL10000 _TRXDATE__56701F76"과 충돌했습니다. 데이터베이스 "TWO", 테이블 "dbo.GL10000", 열 'TRXDATE'에서 충돌이 발생했습니다.
이 내 저장 프로 시저입니다 :
이SqlCommand myCommand1 = new SqlCommand("taGLTransactionHeaderInsert", strcon);
myCommand1.CommandType = CommandType.StoredProcedure;
myCommand1.CommandText = "taGLTransactionHeaderInsert";
myCommand1.Parameters.Add("@I_vBACHNUMB", SqlDbType.Char).Value = GLHdr.BACHNUMB;
myCommand1.Parameters.Add("@I_vREFRENCE", SqlDbType.Char).Value = "ExcelImport";
myCommand1.Parameters.Add("@I_vTRXDATE", SqlDbType.DateTime).Value = GLHdr.TRXDATE;
표 정의 : 테이블에 CHECK 제약 조건 및 저장 프로 시저에 전달하는 값이
이CREATE TABLE [dbo].[GL10000](
[PSTGSTUS] [smallint] NOT NULL,
[LASTUSER] [char](15) NOT NULL,
[LSTDTEDT] [datetime] NOT NULL,
[USWHPSTD] [char](15) NOT NULL,
[TRXTYPE] [smallint] NOT NULL
/* More columns? not included in script that OP added */
)
GO
ALTER TABLE [dbo].[GL10000] WITH CHECK ADD CHECK
((datepart(hour,[RVRSNGDT])=(0) AND datepart(minute,[RVRSNGDT])=(0)
AND datepart(second,[RVRSNGDT])=(0) AND datepart(millisecond,[RVRSNGDT])=(0)))
GO
ALTER TABLE [dbo].[GL10000] WITH CHECK ADD CHECK
((datepart(hour,[Tax_Date])=(0) AND datepart(minute,[Tax_Date])=(0)
AND datepart(second,[Tax_Date])=(0) AND datepart(millisecond,[Tax_Date])=(0)))
GO
ALTER TABLE [dbo].[GL10000] WITH CHECK ADD CHECK
((datepart(day,[TIME1])=(1) AND datepart(month,[TIME1])=(1)
AND datepart(year,[TIME1])=(1900)))
GO
ALTER TABLE [dbo].[GL10000] WITH CHECK ADD CHECK
((datepart(hour,[TRXDATE])=(0) AND datepart(minute,[TRXDATE])=(0)
AND datepart(second,[TRXDATE])=(0) AND datepart(millisecond,[TRXDATE])=(0)))
GO
ALTER TABLE [dbo].[GL10000] ADD CONSTRAINT
[DF__GL10000__DEX_ROW__540C7B00] DEFAULT (getutcdate()) FOR [DEX_ROW_TS]
GO
고유 제약 조건? FK 제약? 게시 할 수 있습니까? –
오류를 발생시키는 제약 조건을 찾는 방법을 알려주십시오. 오류 설명에서 제약 조건을 찾지 못했습니다. –
SQL Mgmt Studio를 사용하여 테이블 GL10000을 선택하고 확장하십시오. 하지만 이름은 CK_GL10000_TRXDATE__56701F76 –