日期:2014-05-18  浏览次数:20632 次

insert 插入sqlserver2005表,如果int字段为空插入,则报错,怎么处理?
一个表Table1有a(主键),b(int)字段,c(Vchar)字段。a字段不允许空,b,c字段允许为空。

现在,假设有一条空记录需要插入,只生成主键,

sql语句如下:insert into Table1 (a,b,c) Values (001,,'');sqlserver2005报错

后来经过尝试,insert into Table1 (a,b,c) Values (001,null,'');可以通过,即int型为空是,直接什么都不写插入不了,一定要写null。

但是我在程序里,把特意把相关字段赋值"null",可是等到生成sql语句时,还是会变成类似“insert into Table1 (a,b,c) Values (001,,'')”,即那个整型字段上什么都没有,导致数据库报错。

请问该怎么处理?

-------------------------

或者换句话说,面对插入一条数据,其中int字段为空的情况,sqlserver2005下 各位高人都是怎么处理的?我这边老报错!

------解决方案--------------------
要不修改程序让生成的时候还有null

或者 生成一个 

insert into Table1 (a,c) Values (001,'') 的语句。
------解决方案--------------------
关于拼接sql语句的方法

http://kb.cnblogs.com/a/1093624/
------解决方案--------------------
拼sql语句时 要避免('',,'')这样的错误语句,这里没值要拼''代替
------解决方案--------------------
字段允许为空时写入SQL语句要么写上字段名并在对应的位置写上NULL,要么不写字段名与值