存储过程是把比较复杂的业务逻辑放到一起,一次性处理好返回给用户.它一般是查询到多外表或多个视图,多个if判断语句,可以同时处理新增、修改、删除或其他操作,就看业务复杂程序。oracle 和 sql server大部分语法一样,但还是有些差别,只要你会其中一门数据库的语法,学习其他的都不难。

解决方案 »

  1.   

    拿SQL SERVER来说,首先你要熟悉T-SQL,会用T-SQL来实现功能,存储过程绝大部分情况下就是一个包住这些代码的功能,当年毕业我连存储过程是啥都不会,后来只有我一个写T-SQL,逼着非要做,写着写着,差不多写了1000个左右,就有点感觉了,总的来说,你要多练,如果你上班了,公司估计少不了存储过程的代码,多看多问。
      

  2.   

    很多书籍会告诉你怎么写T-SQL,但是没有告诉你怎么写存储过程,可以体现出T-SQL才是根本。《sqlserver 2005技术内幕》的《Microsoft SQL Server 2005技术内幕:T-SQ程序设计》可以考虑多看看
      

  3.   

    我个人觉得每一个存储过程都是一篇记叙文,像记叙文一样包含几大要素,你要了解存储过程首先得弄清楚它的结构,严格的按照它的结构去写每一部分,保证存储过程的规范性这是一个非常好的习惯,我经常看到有些人写的,东建一个临时表,西建一个,我觉得最好的就是在存储过程定义输入参数之后然后就开始一次性建立完所有的临时表,再存储过程得到最终结果之后再一次性DROP掉所有的临时表,这样后续的维护非常方便。还有的人对于判断或者循环不喜欢用begin and,我的建议是无论逻辑多么简单都套上比较好。以上是我谈的编写习惯的问题,希望你能首先培养自己的写存储过程习惯。
    接下来可以从下面几方面着手进行操练:
    1、多写复杂的SQL
    2、尝试用临时表保存中间数据
    3、学会使用游标对数据库中多个表或者一个表的多条数据进行遍历访问
    4、学着使用一些SQL SERVER关键字进行特殊查询
    5、学着使用SQL SERVER内置函数和自定义函数进行数据操作
    当然如果要看书,3楼提供的书很不错,建议看纸质书。
      

  4.   

    其实这个,行数的多少,一般是由逻辑的复杂程度决定的,不过一般会把比较复杂的逻辑处理,放到存储过程当中,所以你可能觉得存储过程比较复杂。我在上一家公司,主要做报表的开发,很多报表非常复杂,但代码行数不一定多,也就是1000行以内,而有些不太复杂的报表却需要写2000-3000行的sql代码。另外,复杂的存储过程,也是有一些简单的sql语句组成的,所以还是得先学习基本的sql的写法。建议你看看这本书:
    SQL Server 2008实战 电子书
    http://download.csdn.net/detail/sanhuofriend/4516492
      

  5.   

    还有,你说的sql server的存储过程的语法,和oracle的存储过程的语句,这个两个语句,还是很不一样的,差异比较大,包括游标,选好,判断等写法都不一样。但是,就像我上面说的,基本的sql语句的写法是一样的,所以还得打好基础,这样以后就轻松多了
      

  6.   

    存储过程只是sql语句的集合,存储过程的语法相比其它编程语言,属于比较简单的。
    所以关键是学好select ,update与delete三条命令
    最最关键是select,select会了,update与delete自然可很快学会。
      

  7.   

    多写写,自然就熟练了,其实重要的不是存储过程怎么写,而是你的语句本身的质量,T-SQL包装下就是存储过程了。重要的是把T-SQL写好
      

  8.   

    存储过程不要去“学”,关键是做项目,可以有针对性的练习,可以有两个阶段,首先需要了解
    基本知识如左连接 右连接,多表间更新,循环等; 然后,开发一些ERP系统的典型报表如BOM树形表,
    订单排期report, MRP展开逻辑,当你完成这些,你会发现你的T-SQL已经“纯熟”了