如何修改";空";至;“不为空”;在sql中
我有一个表,需要从“null”更改为“notnull” 我有一个具有以下结构的表:如何修改";空";至;“不为空”;在sql中,sql,sql-server,database,sql-server-2008,Sql,Sql Server,Database,Sql Server 2008,我有一个表,需要从“null”更改为“notnull” 我有一个具有以下结构的表: Created_By Created_Date_Time Modified_By Modified_Date_Time NULL NULL -1 NULL NULL NULL -1 NULL NULL NULL
Created_By Created_Date_Time Modified_By Modified_Date_Time
NULL NULL -1 NULL
NULL NULL -1 NULL
NULL NULL -1 NULL
我需要将Modified\u By
从-1
更改为null
我正在尝试以下查询,但它给了我一个错误:
update BOM_Rules
set Modified_By = not null
错误:
Cannot insert the value NULL into column 'Modified_By', table 'dbo.BOM_Rules'; column does not allow nulls. UPDATE fails.
我肯定我错过了一些重要的事情。也许改变表格
ALTER TABLE BOM_Rules
ALTER COLUMN Modified_By NVARCHAR(50) NOT NULL
我使用的是SQL2008R2。听起来Modified_By列不允许空值。尝试更改列以允许空值:
ALTER TABLE BOM_Rules
ALTER COLUMN Modified_By NVARCHAR(50) NULL
没有
notnull
值。该术语仅用于DDL和WHERE
子句。如果您希望某些内容不为null,则必须实际设置一个值set Modified\u By=not null
应该在关键字“not”附近给出错误的语法。因为这是无效的语法。插入
NULL`时没有错误您的问题不一致。您说需要将“从“null”更改为“notnull”,但随后您说Modified_By
字段包含-1
,并且您希望将其更改为null。那么,是哪一个呢?这个问题的解释对我来说最有意义。我猜想他们一定是在运行update BOM\u Rules set Modified\u By=null
,而不是他们在问题中所说的查询。