numeric字段 设置不允许null问题

nicholasvb 2015-03-19 02:16:10
numeric字段类型 , 设置不允许null,默认值为0,
插入的时候 插入null 报错,提示 列不允许null,
请问为什么没有把默认值 0插入到字段里面??
...全文
714 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
nicholasvb 2015-03-19
  • 打赏
  • 举报
回复
引用 7 楼 Tiger_Zhao 的回复:
概念不清啊! 默认值表示你不指定时用来填充的值,#1举例了。 NOT NULL 就是不允许指定 NULL,否则就报错。 这是两个独立规则。 至于指定了 NULL 而用默认值代替,数据库从来没有这种规则。 你为什么不自己把 NULL 替换成 0?
谢谢,谢谢了,
Tiger_Zhao 2015-03-19
  • 打赏
  • 举报
回复
概念不清啊!
默认值表示你不指定时用来填充的值,#1举例了。
NOT NULL 就是不允许指定 NULL,否则就报错。
这是两个独立规则。

至于指定了 NULL 而用默认值代替,数据库从来没有这种规则。
你为什么不自己把 NULL 替换成 0?
中国风 2015-03-19
  • 打赏
  • 举报
回复
或用 isnull(null,0)--如果是参数时,可这样转把null转0
中国风 2015-03-19
  • 打赏
  • 举报
回复
引用 4 楼 nicholasvb 的回复:
[quote=引用 1 楼 roy_88 的回复:] [code=sql]create table tab(ID int,num NUMERIC(18,0) default 0);--加上默认值 insert into tab(ID) values(1) 这样行不行: insert into tab(ID,num) values(1,null) -------------
不行,不能用null,有指定列时要用0
nicholasvb 2015-03-19
  • 打赏
  • 举报
回复
[quote=引用 1 楼 roy_88 的回复:] [code=sql]create table tab(ID int,num NUMERIC(18,0) default 0);--加上默认值 insert into tab(ID) values(1) 这样行不行: insert into tab(ID,num) values(1,null) -------------
Neo_whl 2015-03-19
  • 打赏
  • 举报
回复
非空属性,插入数据时,该字段必须要给数据的
Neo_whl 2015-03-19
  • 打赏
  • 举报
回复
你把字段属性设置为null,默认值为0,再插入数据,就可以了
中国风 2015-03-19
  • 打赏
  • 举报
回复
create table tab(ID int,num NUMERIC(18,0) default 0);--加上默认值
insert into tab(ID) values(1)

SELECT * FROM TAB
/*
ID	num

1	0*/

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧