请问高手们,sql server中的存储过程的参数的类型和长度必须与sql server中的数据表的字段的类型和长度一致吗?
如表中一字段sno,类型是varchar(10), 那么存储过程中相对应的参数也必须是varchar(10)吗?

解决方案 »

  1.   

    不一致也可以但不可预料后果...例如你这个sno...存储过程的参数是varchar(100)...那么输入的参数最终存储时超过10个字符的部分都被丢弃...所以最好还是保持一致...
      

  2.   

    最好保持一致,如果有特殊情况不一致也是可以的,但有时候会出错。
    表中一字段sno,类型是varchar(10) 存储过程中为 varchar(9) 那么无论什么情况下都不会出问题,可以这么写。
    但是如果为varchar(11)那么就有可能出问题,应该避免这种情况。   
      

  3.   

    存储过程中的参数个数,应该是取的个数吧,以前碰到过,表中是varchar(6),存储过程中写了varchar(5),然后表里一直保存的是5位
      

  4.   

    SP里的长度要小于等于table的长度。既然是varchar的类型,建议表里的长度根据需要适当的放宽些。