做一个插入SQL操作,会自动把小弟我语句间的“,”删掉,why

做一个插入SQL操作,会自动把我语句间的“,”删掉,why?
insert   into   scbb   values( '31P918-77 ', '水管 ', ' ',, '2 ',1, ' ', 'CS16 ', ' ', '31F918-77☆1★22P551-01☆1★22P001B08☆1★46F795-01☆1★ ',3)

scbb的结构为:
CREATE   TABLE   [dbo].[scbb]   (
[partid]   [nvarchar]   (40)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[descript]   [ntext]   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[material]   [ntext]   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[length]   [smallmoney]   NULL   ,
[quantity]   [int]   NULL   ,
[isprint]   [bit]   NOT   NULL   ,
[desc2]   [ntext]   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[workstation]   [nvarchar]   (40)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[sqcode]   [nvarchar]   (30)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[material2]   [ntext]   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[worknumber]   [int]   NULL  

问题出在那个length上,我是允许为空的,插入的SQL语句里也是空着的值,但执行就是出错(如果length填上数字就不会错),而且出错后会自动把 '水管 ', ' ',, '2 '改成 '水管 ', ' ', '2 '     无故去掉一个“,”让我很奇怪。

------解决方案--------------------
哦,没注意 length的数据类型,smallmoney是一定要null的,如果是文本类型varchar可以用 ' '