2013-12-16 26 views
1

我在执行以下命令时遇到了以下错误。有人可以帮助!无法将NULL值插入到列''中,表列不允许为空值。 INSERT失败。无法执行以下SQL代码块

无法将值NULL插入到列''中,表列不允许为空值。 INSERT fails.Failed执行下列SQL块

BEGIN 
    Select @v_setting_val=setting_val from EGPL_PROGRAM where [email protected]_setting_id 
    and group_id = 
     (select group_id 
     from egpl_pref_group 
     where group_type = 'departmental' 
     and [email protected]_department_id) 

    INSERT INTO EGPL_PROGRAM 
    (GROUP_ID, SETTING_ID, SETTING_VAL, IS_PREFERENCE, MODIFIER_ID, MODIFIED_DATE) 
    VALUES 
    (@v_group_id, @v_setting_id, @v_setting_val,'n',1,getdate()); 

    PRINT('Inserted the following value for group ' + convert(nvarchar, @v_group_id)) 
    PRINT('Setting_id : ' + convert(nvarchar, @v_setting_id) + ' setting_val : ' + @v_setting_val) 
END 
+0

如果没有E_S的表定义(假设这个表包含一个在你的INSERT中被省略的NOT NULL列),那么答案是不可能的。顺便说一下,如果可能的话,请将您的表格和列名更改为更有意义的内容。 –

+1

错误似乎足够清楚。您是否检查了您在Insert语句中使用的参数的值? –

回答

2

检查表列不允许空

无论这些列之一的值为null,或者你不及格该列在所有。
如果你有一列不在列的列表中,那么插入将以这种方式失败。

+1

谢谢。我手动插入了几行然后运行脚本。这解决了这个问题。 – Ordinary

+0

如果答案是正确的,那么你可以给它一张支票 – Paparazzi

1

检查表格中不允许空值的列,并且如果您修改了它,还一定要检查表格中的触发器。在我意识到这是报告错误的触发器之前的大部分时间,这个问题使我困扰不已。

相关问题