数据库字段设置了默认值,插入数据时,该字段值为空,会覆盖了那个默认值吗?

如题所述

假如这个字段是字符型的,你插入的时候,是插""(也就是插入一个值,这个值是空),那就会把这个这段变为空。如果你是想留空,使用默认值。insert语句中就不要添加这个字段,跳过。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-18
会。。。不管你插入什么。只要你插入东西了,那么就会覆盖掉默认的值
第2个回答  2013-08-18
当然会覆盖 默认值 因为实际上 你已经给这个字段赋值了 null 和 两个引号 不同概念
第3个回答  2018-03-31

会。

数据库中字段设置的默认值和插入的结果不一致,怎么办?

解决方案1、insert的sql语句贴出来;

解决方案2、先看看你的添加代码是不是有问题,怎么写的;

解决方案3、

我做插入不是直接用sql插的,而是运用EntityFramework代码如下:

using(TestEntitiescontext=newTestEntities())

{varperson=context.CreateObject<PersonsEFEntity>

();person.FirstName="w";person.LastName="m";person.Address="闵行宜山路";person.City="上

海";context.PersonsEFEntitySet.AddObject(person);context.SaveChanges();}

以上代码中我没有给person.isStudent赋值

解决方案5、person.isStudent不赋值就是默认为0;

解决方案7、

数据库脚本:SETQUOTED_IDENTIFIERONGOCREATETABLE[dbo].[Persons]([Id][int]IDENTITY(1,1)NOTNULL,[FirstName][nvarchar](50)NULL,[LastName][nvarchar](50)NULL,[Address][nvarchar](50)NULL,[City][nvarchar](50)NULL,[isStudent][bit]NOTNULL,CONSTRAINT[PK_Persons]PRIMARYKEYCLUSTERED([Id]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GOALTERTABLE[dbo].[Persons]ADDCONSTRAINT[Persons_isStudent]DEFAULT((1))FOR[isStudent]GO默认值是1。

本回答被网友采纳
第4个回答  2013-08-18
你可以在插入的时候判断,如果为空则不操作嘛!
相似回答