“无法将值NULL插入列” Insert语句中的PK和FK错误

时间:2018-08-16 14:06:21

标签: sql sql-server sql-server-2014

我尝试运行以下脚本,但始终收到NULL错误。主键是ID,它不包含在我的脚本中。

我不是表的所有者,因此我无法在Key文件夹中进行任何更改。

我还需要指出UserIDEntityIDUserpermissions表中的外键。

如何使此脚本成功运行而没有任何NULL或键约束错误?

INSERT INTO userpermissions (
        UserID, 
        EntityID, 
        Applications, 
        Phone, 
        PhoneExt, 
        E_Mail, 
        UserTypeID, 
        InactiveDate, 
        ReviewDate)

VALUES( ( SELECT ID FROM Users AS UserID WHERE id = 710231),
        ( SELECT ID FROM Entity AS EntityID WHERE id = 2332448),
        '31525197392643072' ,
        'NULL'  ,   
        'NULL'  ,   
        'NULL'  ,   
         2      , 
        'NULL'  , 
        'NULL'  
       )

3 个答案:

答案 0 :(得分:0)

就像两个子查询之一

( SELECT ID from Users as UserID where id = 710231), ( SELECT ID from Entity as EntityID where id = 2332448)

返回NULL

答案 1 :(得分:0)

我的猜测是您正在尝试将 string ''NULL'插入日期字段,该字段不接受非日期值。删除单引号:

INSERT INTO userpermissions (
        UserID, 
        EntityID, 
        Applications, 
        Phone, 
        PhoneExt, 
        E_Mail, 
        UserTypeID, 
        InactiveDate, 
        ReviewDate)

VALUES( ( SELECT ID FROM Users AS UserID WHERE id = 710231),
        ( SELECT ID FROM Entity AS EntityID WHERE id = 2332448),
        '31525197392643072' ,
        NULL  ,   
        NULL  ,   
        NULL  ,   
        2     , 
        NULL  , 
        NULL  
       )

答案 2 :(得分:0)

我假设如果您提到为'NULL'的列值不允许为空,请在NULL周围删除“”,如果这些列允许为NULL,则无需放入“”。

  

NULL不是值。某些东西不能为'='NULL

(id)中的

PK列 Userpermissions应该是递增值。 您需要设置它,否则,如果您有一个不可为空的列,且没有默认值,则不进行设置,否则将抛出错误。首先检查并设置自动增量。

要在SQL Server Management Studio中设置自动增量,请执行以下操作:

  • Design中打开表格
  • 选择您的列,然后转到列Properties
  • Indentity Specification下,设置(Is Identity)=YesIndentity Increment=1
相关问题