在线高分急等 sql语句问题 该列不允许空值。INSERT 失败。

请人做了一个网站类型的会员积分系统 数据库用的是SQL2000。最近导数据出现这个问题

无法将 NULL 值插入列 'id',表 'yaoweb.yao.yyuser';该列不允许空值。INSERT 失败。

我是在执行下面语句时候出现的这个提示

<!-- #include file =conn.asp -->
<%
dim n
n=10000
set rs=rsopen("select min(id),max(id),count(iD) from yyuser ")

if request("act")= "add" then
for i = 1 to n
rsopen("insert yyuser (tel) values('')")
next
%>
<script>
location.href="?"
</script>
<%
Response.end
end if
%>
最小卡号:<%=rs(0)%><BR>
最大卡号:<%=rs(1)%><BR>
卡号数量:<%=rs(2)%><BR>

<p><a href="?act=add">增加1万个用户</a></p>

数据表是这个结构的

id tel score bak
1 12345678 100 <null>

类推 ID 就是会员卡号 TEL是电话号码 SCORE是积分数 后面那个不知道什么 请问怎么回事啊?

在你的数据库设计中ID为不允许空值的字段,这样如果想插入一条记录而不给这个记录赋值的话就会报这个错误。
从你的程序设计上看,id应该不是一个手工赋值的字段,应该是个自动增长的字段。因此建议你把数据库的表 结构中id字段改为自动增长字段。
indentity (1,1)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-03-09
请打开数据库的yyuser表,检查一下看id那一列的属性,可能是设置成主键了,但是没有设置成自动编码。
如果id不过是记录的编号,改成自动编码比较合理。
第2个回答  2009-03-09
id列不能为空,建议修改表结构,将id列修改为自增列
alter table yyuser alter id smallint identity(1,1) primary key
第3个回答  2009-03-09
id是数据表中的不允许为空的字段(sql 中定义的),你的插入语句没有给它值.
第4个回答  2009-03-09
rsopen("insert yyuser (tel) values('')")

电话号码为空了。
把表结果改以下,把tel改为可以为空
相似回答
大家正在搜