exec(@DSql)不过你的代码有一个潜在BUG,当第一个条件不满足时是错误的。

解决方案 »

  1.   

    hehe,newly_ignorant兄,不行阿,这样不可以的。变量必须重新定义,而且数值传不进去
      

  2.   

    没注意看,赫赫
    IF @ModualName IS NOT NULL
    SET @DSql = @DSql + 'modual_name = @ModualName'
                                                ~~~改一下:
    SET @DSql = @DSql + 'modual_name = '+@ModualName
      

  3.   

    干嘛不用ISNULL??:
    UPDATE modual SET 
    modual_name =isnull(@ModualName,modual_name),
    system_id = isnull(@SystemId,system_id),
    ......................
    .....................
    where modual_id =isnull(@ModualId,modual_id)
      

  4.   

    IF @ModualName IS NOT NULL
    SET @DSql = @DSql + '''modual_name'' = '''+ @ModualName + ''''