--根本不用存储过程,一条语句就可以。
insert myStudent select '001',null,null,'软件开发',null
--或
insert myStudent values( '001',null,null,'软件开发',null)

解决方案 »

  1.   

    create  proc myStu_update( 
    @myStuId varchar(50), 
    @myStuName varchar(50), 
    @myStuSex char(2), 
    @myStuMajor varchar(50), 
    @myStuBirth datetime 

    as
    begin
      declare @sql as varchar(1000)
      set @sql = 'update myStudent set '
      if @myStuId is null
         set @sql = @sql + ' myStuName = null'
      else
         set @sql = @sql + ' = ''' + @myStuId + '''
      if @myStuId is null
         set @sql = @sql + ' , myStuSex = null'
      else
         set @sql = @sql + ' , myStuSex = ''' + @myStuSex + '''
      ...
      exec(@sql)
    end 
      

  2.   

    谢谢楼上热心两位,我到时候会结帖给你们加分的啦...
    正确解法已经出来了...
    exec myStu_update @myStuId='001',@myStuMajor='软件开发'