在任何给定的项目中,从实验着手,建立一套核心的设计时存储过程,用它编写数据库表基本的运行时存储过程集。通过创建并使用这些设计时过程,我们不仅节省了大量时间,同时还为我们的客户节省了金钱,此外还留下了一些我们至今仍在使用的好代码。
这些设计时存储过程已经被更新,以便利用 SQL Server 2000 的一些新特性,尤其是用户自定义函数(UDFs)特性。因此代码变得非常模块化,并且我们还有额外的函数来完成其它任务。
另一个设计时自动化的好处是保证所生成的数以百计的存储过程都有一致的结构和标准的命名规范。在我们的例子中,所有产生的运行时存储过程的名字被格式化为:prApp_TableName_Task,这里Task 可以是 Select、Update 或者 Delete。用于 Customers 和 Orders 表的存储过程如下所示:
prApp_Customers_Delete
prApp_Customers_Insert
prApp_Customers_Select
prApp_Customers_Update
prApp_Orders_Delete
prApp_Orders_Insert
prApp_Orders_Select
prApp_Orders_Update
正如你看到的,这个规范添加大量的组织到数据库中,使任何存储过程都容易定位并使每个过程的名字都是自描述的。开发人员可以快速发现它并创建代码。最重要的是这个项目未来的团队成员将会发现这些代码和存储过程很容易理解和上手。当然,如果你已经使用了一个不同的命名规范,那么只需简单地改变几行代码,你的命名规范便可被替换使用。
这四个设计时存储过程不是一成不变的,而是可以将它作为模版在其它项目中使用。将它们安装到项目数据库中,如果需要,可以修改它们适应特定应用程序的需要。例如,在我们的几个应用程序中,我们增加代码在单独的数据库中维护每次记录被修改的稽核记录。
一个简单例子
开始前,先看一个使用数据库 Northwind 中 Order_Details 表的简单例子(该表的表名是被修改过的,用下划线取代了空格字符)。尽管空格和其它字符在对象名字中被允许使用,但我们推荐使用常规分割符