WEB开发网
开发学院软件开发VC 数据库中存储过程的自动化生成 阅读

数据库中存储过程的自动化生成

 2006-07-23 11:17:31 来源:WEB开发网   
核心提示: prApp_Customers_DeleteprApp_Customers_InsertprApp_Customers_SelectprApp_Customers_UpdateprApp_Orders_DeleteprApp_Orders_InsertprApp_Orders_Select
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 表的简单例子(该表的表名是被修改过的,用下划线取代了空格字符)。尽管空格和其它字符在对象名字中被允许使用,但我们推荐使用常规分割符来命名对象,以防止在使用这些自动化存储过程时可能出现的问题,请参见 SQL Server 在线书籍中“Using Identifiers”部分来获得更多信息。

第一个任务是运行这个设计时存储过程,以创建修改 Order_Details 表数据的运行时存储过程:

EXEC pr__SYS_MakeUpdateRecordProc ''Order_Details''

运行这个设计时存储过程将产生如 Figure 1 所示的 T-SQL 脚本。当这个 T-SQL 脚本运行时,它为 Order_Details 表创建一个新的 update 存储过程。所有的列被说明为新存储过程的参数,但是注意当其它非主键字段是 update 命令的 SET 语句的一部分时,主键列(OrderID 和 ProductID)是如何在 WHERE 字句中出现的。设计时存储过程检查 Order_Details 表存储在 SQL Server 系统表中的元数据(metadata),并用这个信息来创建适当的输出脚本,运行后将创建最后的运行时存储过程。

上一页  1 2 3 4 5 6 7  下一页

Tags:数据库 存储 过程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接