因为你的定会变成:insert......values(.....,'NULL',....)
这样其它不是NULL,而是字符串"NULL",
如果你的这个字段长度定义没有4位长,就不会被插入.

解决方案 »

  1.   

    我的 BZ 字段是 char(50)
      

  2.   

    CREATE proc insertKq 
    @tableName  varchar(50)='',@RYID int=0,@KHLX varchar(50)='',@JE money=0.0,@BZ varchar(50)='',@RQ smalldatetime='',@BC varchar(8)=''
    as 
    declare @sql varchar(8000)
    set @sql = 'insert ['+@tableName+'] (RYID,KHLX,JE,BZ,RQ,BC) 
    values ('+cast(@RYID as varchar(10))+','''+@KHLX+''','+cast(@JE as varchar(10))+','''+@BZ+''','''+CONVERT(varchar(10),@RQ,120)+''','''+@BC+''')'
    exec(@sql) return @@IDENTITY
    GO