报表SQL存储过程的特点:
通过一组变量作为输入参数,根据行控制变量的不同,循环查询,将每个查询的结果值保存到变量里面,够一组了,插入临时表(结果表),如此反复,直到循环结束。最终查询临时表,返回一个结果集的游标。
报表SQL存储过程十条军规:
1、存储过程中要尽可能少的定义变量,能复用就复用。
2、存储过程中两个列相互赋值、或者是变量给临时表中插入值的时候要注意两个数据类型定义要完全一致。
3、存储过程中临时表中的列名最好不要和存储过程中的变量名重名,否则,出现问题很难调试发现。
4、存储过程要注意循环条件的控制、对没有分组的规律的要创造出一些规律。对于多层循环要注意循环开关控制。
5、结果集最好用临时表保存,在插入结果集到临时表的时候,不要commit。否则临时表会清空甚至被drop掉。
6、存储过程语句一般来说越少越好,循环体中的SQL要反复优化,以减少表的扫描次数为终极目标,这样一般能获取更好的性能。
7、在用sum的时候,一定要注意对null值进行处理。比如为null的时候给一个默认值0。
8、在插入字符串数据的时候,一定要注意:空格、空串、null的区别,在适当的时候选择适当的值插入。
9、机器编号应该根据程序循环自动生成,对于多层嵌套循环的存储过程,内外层之间的逻辑关系要注意。比如内层循环的所得记录只求和为外层循环记录,所有外层循环的记录求和为合计行值。那么在处理的时候要通过变量记录每次外层循环的一些参数,以便求和方便。
10、尽可能少的减少嵌套循环的次数,将循环次数多的细的放到最内层。游标用完后要关闭。
分享到:
相关推荐
存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程SQL存储过程
内容概要:简单的C# winform调用存储过程实例,创建存储过程入参,通过SqlConnection对象和SqlCommand对象调用存储过程,获取存储过程的出参并显示出来,详细代码注释,希望对用到C#调用存储过程的小伙伴有帮助 ...
SQL存储过程IN参数的解决办法SQL存储过程IN参数的解决办法
SQL存储过程试题及答案,很经典,很详细,很具体!
SqlServer存储过程的导出导入 近日在研究SQL的存储过程,这里我陆续将我在使用存储过程中碰到的问题及解决办法发布到网上,请各位大虾指正。 SqlServer存储过程的导出导入,网上相关资料特别少,经过摸索,这里写...
--1、创建存储过程-- if exists (select * from sysobjects where name='Sum_wage') drop procedure Sum_wage GO create procedure Sum_wage @PWage int, @AWage int, @total int as while (1=1) begin if (select...
在网上找到的,能在SQL的存储过程中发送HTTP请求的SQL语句,个人觉得还不错,很好用,拿来分享下。
用友二次开发 UAP报表 sqlserver存储过程 编译控件 开发总结
本软件采用C#,和SQL存储过程用 表格显示,实现增删改查
原创sql存储过程函数范例,一是为了自己方便查找,今天到公司因为没有我保存的一些范例,一个简单的例子写了半个小时,如果有范例直接套几分钟肯定搞定,所以索性上传到CSDN上,何时何地都能找到我的范例了。...
学习sql存储过程,一则关于存储过程的学习笔记
使用SQL存储过程发送邮件,方法非常简单
在SQL存储过程中进行参数数组Array Parameter的处理函数。
主要介绍了SQLServer存储过程中事务的使用方法,简短的代码带大家更好的学习使用SQLServer存储过程中事务,感兴趣的小伙伴们可以参考一下
SQL存储过程习题,SQL触发器习题,SQL习题,基础语法,与W3School类似,初学者学习使用。
1. 存储过程只在创造时进行编译即可,以后每次执行存储过程都不需再重新编译,而我们通常使用的SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。 2. 经常会遇到复杂的业务逻辑和对数据库的...
SQL Server数据库开发的二十一条军规 SQL Server数据库开发的二十一条军规
Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。这样就可以提高存储过程的性能。 Ø 存储过程的概念 ...