数据库中存储过程的自动化生成
2006-07-23 11:17:31 来源:WEB开发网本文示例源代码或素材下载
本文假定你熟悉 T-SQL。
摘要
设计时的自动化加快了编码,并保证所有过程都用相同的命名规范和结构来生成。为了在大型 SQL 项目中尽量提高编码的效率,作者编写了一系列的设计时(design-time)存储过程,用它们来生成运行时(run-time)存储过程,并一直在工程中使用。最近,作者更新了其存储过程以便使用 SQL Server 2000 的特性,其中包括用户定义函数。本文所及内容涵盖创建并执行这些动态 T-SQL 脚本以使普通的数据库存储过程编码自动化。
以前,我们开发了一个相当大的n层的客户/服务器项目。在最初计划期间,我们决定用一系列存取数据库中大量表的方法。有四个基本的存储过程用来实现每个表的 select、insert、uodate 和delete 操作。虽然所需的存储过程在设计上类似,每张表的唯一索引列的结构控制每个独立过程的重要细节会不同,这无疑会导致存储过程的编写非常单调烦琐。很显然存储过程的编写过程必须实现自动化。
在任何给定的项目中,从实验着手,建立一套核心的设计时存储过程,用它编写数据库表基本的运行时存储过程集。通过创建并使用这些设计时过程,我们不仅节省了大量时间,同时还为我们的客户节省了金钱,此外还留下了一些我们至今仍在使用的好代码。
这些设计时存储过程已经被更新,以便利用 SQL Server 2000 的一些新特性,尤其是用户自定义函数(UDFs)特性。因此代码变得非常模块化,并且我们还有额外的函数来完成其它任务。
另一个设计时自动化的好处是保证所生成的数以百计的存储过程都有一致的结构和标准的命名规范。在我们的例子中,所有产生的运行时存储过程的名字被格式化为:prApp_TableName_Task,这里Task 可以是 Select、Update 或者 Delete。用于 Customers 和 Orders 表的存储过程如下所示:
更多精彩
赞助商链接