写存贮过程时,定义变量是随用随声明好呀,还是在前面将所有变量声明放在一起.哪种规范,方便呢?
-------------------------------
有时一个存贮过程2000多行,需要用到变量了,还要回到开始处定义,觉得不如随用随定义方便.
不知我的想法是否正确?

解决方案 »

  1.   

    关键看你的习惯,只要风格统一,没有哪种更好。有人习惯了C的风格,那就都放前面,如果习惯C++/JAVA的随用随声明,那就随用随声名。LZ自己决定好了。
      

  2.   

    首先存储过程是一段过程(比如理解为vb里的sub end sub),
    对于自定义变量, 那么它们都仅对当前过程有效, 即作用域只限于此. 而不像开发语言里, 因为有公有和私有之分, 公有外部定义,或显式声明,私有在对应过程或方法处理声明 (依具不同的开发语言).既然它只有私有变量, 这里不说@@inentity,@@eror,@@rowcount,@@spid等等一些全局变量或函数, 仅指用户自定义变量.那么在首行声明,或前几行依具业务功能分行声明, 或是一个一行,再接注释.接下来初始化, 这对于以后的调试及排错,及人员更替都很有用.如果随手随手声明,那就未必如此了. 当然,你说你可以 ctrl + f.这个我就没什么好说的了.操作数, 操作码.win32汇编把数据定义跟代码段是截然分开的, 必然有它的道理. 
    也可以看看高质量c++编程指南. 没讲什么技术上的难点, 但要做到规范编码,还是要长时间去习惯的.虽然, 上面举的例子, 不是sql ,更不是存储过程, 但在目的上是一样的.sql os 进行调用时也是需要编译的, 它也要进行内存分配.  对于声明的变量, 人肉眼也是要去看的, 我不希望以后的工作,像两年前接手的系统一样,改一个判断,要把5000多行的代码的一个文件从第一行看到行尾, 没有缩进,没有注释,存放同一个数据的变量在好几个地方有几个.改代码并调试四五个小时, 结果只是为了改一个if里一个很简单的检测.
      

  3.   

    比如在一个2000行的存贮过程中,一个变量仅在一个if语句中使用,尽管这个变量也是整个存贮过程都能识别的,但是真正用到它的地方就在这个 if 语句中,我有必要将定义的位置放在文件的头部吗?我以前就是这样做的,可是感觉非常不方便.表现在:
    写代码时,在这个if语句中突然要用到一个临时变量,我又要移到文件头定义它,然后我再次转到刚才的if语句处.当行数很多时,只能使用菜单中的"转到行"功能了,否则要一直拉滚动条,很不方便的.
    可是我如果在if语句中定义,就方便多了,以后的人改这个程序时,他也会知道,这个临时变量是在这个if语句中用到的.不知我的理解对不对,欢迎拍砖.
      

  4.   

    写代码时,在这个if语句中突然要用到一个临时变量,我又要移到文件头定义它,然后我再次转到刚才的if语句处.当行数很多时,只能使用菜单中的"转到行"功能了,否则要一直拉滚动条,很不方便的. 
    ---------------------------------偶尔碰到这种情况可以理解. 如果总是这样,你就得考滤你在写之前是否做过准备了. 想一句写一句, 这样做出来的东西..
    有个词叫"一气呵成",虽然用来形容写文章的, 用在写代码这里也一样, 主要指你的代码结构,你在写之前,应该预先知道大概需要多少个变量.当然写代码并不要求像写文章那样,一次就写好, 但同样要求先想后做.
    不会吧。如果几千行程序你还不开模块,那也太奇怪了。你不会把所用功能都在一个模块里实现吧。
    ----------------------------------
    说过了,是接手别人的. 最后花了几个月把这些代码改造过来了.
      

  5.   

    有时,确实有的变量,只在一个if语句中用到,别的地方用不到.
    我认为这种情况下,定义在if语句中,最好.大家以为呢?