Sql server 列上的SQL检查约束并忽略默认值,出错
SQL Server 2008 这是我得到的错误消息。 错误:Msg 547,16级,状态0,第1行 INSERT语句与检查约束“CK_us_ODS_L2_uactiv_7A5F6E76”冲突。冲突发生在数据库“SourceDB”、表“dbo.Datatbl”、列“ACTIVE_FLAG”中 但此列的默认值为“Y”。 这是表脚本 使用[SourceDB] 去 这是我的插入查询Sql server 列上的SQL检查约束并忽略默认值,出错,sql-server,sql-server-2008,Sql Server,Sql Server 2008,SQL Server 2008 这是我得到的错误消息。 错误:Msg 547,16级,状态0,第1行 INSERT语句与检查约束“CK_us_ODS_L2_uactiv_7A5F6E76”冲突。冲突发生在数据库“SourceDB”、表“dbo.Datatbl”、列“ACTIVE_FLAG”中 但此列的默认值为“Y”。 这是表脚本 使用[SourceDB] 去 这是我的插入查询 INSERT INTO Datatbl (BATCH_NB, RCRD_NB, STS_CD, ENTR_DT, CO
INSERT INTO Datatbl
(BATCH_NB,
RCRD_NB,
STS_CD,
ENTR_DT,
COMMENTS_TXT,
ACTIVE_FLAG,
Err_CD,
Source_Fld_Name,
Source_Fld_Val,
Error_Desc,
ISRT_USR,
UPDT_USR,
ISRT_DT,
UPDT_DT,
ProcessDate)
Values (
46401, --Batch
'308', --Rcrd_NB
'1', --STS_CD
'2014-03-07 15:03:11.000000', -- Entr_DT
'Comments test', --comments
'', -- Active_flag, see no value here
'',--Err_Cd
'',--Src_Fld_Nm
'',--Src_Fld_Val
'Error description ', --ErrDesc
'${user_id}', --Inst User
'', --Updt User
'2014-03-07 15:03:11.958578', --ISRT_DT
'',--UPDT_DT
'01/15/2014') -- Processdate
直到最近,这种方法还可以很好地工作,但不知怎么的,它不起作用了。
我不确定数据库方面是否发生了变化,或者数据是否是问题所在
有什么想法吗。让我知道
谢谢,
辛迪 查询的问题是,您为ACTIVE_标志添加了一个值“”,当您向列传递一个值时,将不采用默认值 如果要在列中插入默认值:- (1) 只需从iNSERT命令中删除列及其值 或 (2) 将其替换为默认关键字(“”不等同于“Y”或“N”,这是根本原因)
INSERT INTO Datatbl
(BATCH_NB,
RCRD_NB,
STS_CD,
ENTR_DT,
COMMENTS_TXT,
ACTIVE_FLAG,
Err_CD,
Source_Fld_Name,
Source_Fld_Val,
Error_Desc,
ISRT_USR,
UPDT_USR,
ISRT_DT,
UPDT_DT,
ProcessDate)
Values (
46401, --Batch
'308', --Rcrd_NB
'1', --STS_CD
'2014-03-07 15:03:11.000000', -- Entr_DT
'Comments test', --comments
'', -- Active_flag, see no value here
'',--Err_Cd
'',--Src_Fld_Nm
'',--Src_Fld_Val
'Error description ', --ErrDesc
'${user_id}', --Inst User
'', --Updt User
'2014-03-07 15:03:11.958578', --ISRT_DT
'',--UPDT_DT
'01/15/2014') -- Processdate
INSERT INTO Datatbl
(BATCH_NB,
RCRD_NB,
STS_CD,
ENTR_DT,
COMMENTS_TXT,
ACTIVE_FLAG,
Err_CD,
Source_Fld_Name,
Source_Fld_Val,
Error_Desc,
ISRT_USR,
UPDT_USR,
ISRT_DT,
UPDT_DT,
ProcessDate)
Values (
46401, --Batch
'308', --Rcrd_NB
'1', --STS_CD
'2014-03-07 15:03:11.000000', -- Entr_DT
'Comments test', --comments
--'', -- Active_flag, see no value here
DEFAULT, -- value replaced with default
'',--Err_Cd
'',--Src_Fld_Nm
'',--Src_Fld_Val
'Error description ', --ErrDesc
'${user_id}', --Inst User
'', --Updt User
'2014-03-07 15:03:11.958578', --ISRT_DT
'',--UPDT_DT
'01/15/2014') -- Processdate