提前认识软件开发(28) 数据库存储过程中的重要表信息的保存2015-01-251. 存储过程中的重要表信息的保存在很多存储过程中,会涉及到对表数据的更新、插入或删除等,为了防止修改之后的表数据出现问题,同时方便追踪问题,一般会为一些重要的表建立一个对应的debug表。这个debug表中的字段要包括原表的所有字段,同时要增加操作时间、操作码和操作描述等字段信息。例如,在某项目中,包括了如下一个重要的表tb_XXX:
create table tb_XXX( AAAvarchar(30)not null,-- AAA BBBvarchar(30)not null, -- BBB CCCint not null, -- CCC . . . . . .)
我们的debug表可以命名为tb_XXX_debuglog,其定义如下:
create table tb_XXX_debuglog( AAAvarchar(30)not null, -- AAA BBBvarchar(30)not null, -- BBB CCCint not null, -- CCC . . . . . .opertime varchar(19)not null,-- operating timeresultvarchar(20) not null, -- result codedescription varchar(100)not null,-- operating descriptionreservechar1varchar(30)null -- reserved)
增加的字段如红色字所示,其中opertime表示操作时间,result表示结果码(成功或失败等),description表示操作描述,reservechar1为保留字段。存储过程中,在对tb_XXX表进行重要操作之前,可以先将里面的数据插入(转存)到tb_XXX_debuglog表中。在需要查找相关信息或排错的时候,可以很方便地找到,提高了程序的异常处理能力。2. 一些建议(1) 在编写完数据库脚本之后,一定要用checksql等工具对脚本进行检查,可以发现编程中的一些潜在的不足,如索引建立过少、语法有误等。(2) 一定要按照公司的规范来对数据库脚本进行命名,不能认为只要代码写好了,怎么命名无所谓。(3) 不管是建表脚本还是创建存储过程的脚本,代码的排版(如缩进、换行、对齐、留空行等)很重要,要尽量使得自己的代码阅读起来方便。因为我们首先是为人编写程序,其次才是计算机。(4) 当需要在原来的SQL语句中增删字段或做其它修改时,建议先将整段SQL语句注释掉,然后将修改之后的语句添加到被删除语句的下方,尽量不要在原语句上直接进行修改,这样方便以后版本的比较。(5) 对于存储过程中的if、else、else if、while、begin、end等语句自占一行,执行语句不要紧跟其后,不论其包括的执行语句有多少条,都要加语句块标志begin…end,这样方便阅读。与C/C++/Java等编程语言一样,编写SQL数据库脚本也需要遵循一定的规则。我们不仅要让脚本实现它要完成的功能,而且要让性能尽量达到最优。“实践出真知”,只有不断地练习和总结,我们的数据库编程能力才会得到提高。From:csdn博客 周兆熊