Sql 在数据库中插入0(零)将变为空
我正在使用实体框架将一些数据插入我的数据库(sql server 2012)。 将0值插入浮点字段后,它在数据库中显示为nullSql 在数据库中插入0(零)将变为空,sql,entity-framework-4,sql-server-2012,Sql,Entity Framework 4,Sql Server 2012,我正在使用实体框架将一些数据插入我的数据库(sql server 2012)。 将0值插入浮点字段后,它在数据库中显示为null using (var db = new myDB()) { Part_Properties pp = new Part_Properties { part_id = 7007, properties_id = 31, value_nu
using (var db = new myDB()) {
Part_Properties pp = new Part_Properties {
part_id = 7007,
properties_id = 31,
value_num = 0
};
db.Part_Properties.AddObject(pp);
db.SaveChanges();
}
根据探查器,这是正在发送的:
exec sp_executesql N'insert [dbo].[Part_Properties]([part_id], [properties_id], [value_num], [value_char], [info])
values (@0, @1, @2, null, null)
',N'@0 int,@1 int,@2 float',@0=7007,@1=31,@2=0
DB中的结果是:
part_id=7007,properties_id=31,value_num=null
但我需要这个值为0
有什么想法吗?我可能错了,但这不应该发生。您可以通过定义null并将其转换为“0”来反之亦然
请检查您的语句是否有规则。如果使用SQL查询插入数据,是否也会发生这种情况?这似乎很奇怪。也许你桌上有某种触发器?谢谢你的提示@DanielHilgarth!我有一个触发器,如果有空字符串,它会将字段设置为null。value_char=NULLIF(value_char,,),value_num=NULLIF(value_num,,)。。。。当出现0时,似乎会触发NULLIF(..,')。当然,我的value\u num字段不需要它。
CAST(''AS INT)
返回0
,这就是为什么会发生这种情况。