存储过程和数据库的生成

上传人:206****923 文档编号:41451907 上传时间:2018-05-29 格式:DOC 页数:11 大小:635KB
返回 下载 相关 举报
存储过程和数据库的生成_第1页
第1页 / 共11页
存储过程和数据库的生成_第2页
第2页 / 共11页
存储过程和数据库的生成_第3页
第3页 / 共11页
存储过程和数据库的生成_第4页
第4页 / 共11页
存储过程和数据库的生成_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《存储过程和数据库的生成》由会员分享,可在线阅读,更多相关《存储过程和数据库的生成(11页珍藏版)》请在金锄头文库上搜索。

1、存储过程存储过程 前面提到,严格的来说,触发器就是一个特殊的存储过程。那么,什么是存储过程? 存储过程(存储过程(Stored Procedure): 是一组为了完成特定功能的 SQL 语句集,是利用 SQL Server 所提供的 Transact-SQL 语 言所编写的程序。经编译后存储在数据库中。存储过程是数据库中的一个重要对象,用户 通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是 由流控制和 SQL 语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,存储 过程可由应用程序通过一个调用来执行,而且允许用户声明变量 。同时,存储过程可以接 收和输出

2、参数、返回执行存储过程的状态值,也可以嵌套调用。 在 SQL Server 中使用存储过程而不使用存储在客户端计算机本地的 Transact-SQL 程 序的好处包括: 存储过程已在服务器注册。 存储过程具有安全特性(例如权限)和所有权链接,以及可以附加到它们的证书。 用户可以被授予权限来执行存储过程而不必直接对存储过程中引用的对象具有权限。 存储过程可以强制应用程序的安全性。 存储过程允许模块化程序设计。 存储过程一旦创建,以后即可在程序中调用任意多次。这可以改进应用程序的可维护 性,并允许应用程序统一访问数据库。 存储过程可以减少网络通信流量。1.1.1 为存储过程和函数定义模板 () 选

3、择 Database-Edit Current DBMS 以打开 DBMS 属性窗口,如下图示:()展开 DBMS 树形视图中的 Script 节点,继续展开 Objects 节点。 ()展开 Procedure 节点。 ()单击 CustomProc 条目以编辑存储过程模板,或单击 CustomFunc 条目以编辑函数模 板。 ()输入你想要进行的更改,单击”确认”即完成模板定义过程。1.1.2 创建存储过程和函数注意,在 powerdesigner 中,存储过程和用户自定义函数都是在同一个组件中设置的。现在来创建一个查询操作的存储过程:根据关键字查询包含此关键字(包括商品信息 中的名称,所

4、属产品的名称或分类名称中包含此关键字的都算)的所有商品信息。 ()单击 Palette 面板中 Procedure 工具。 ()在模型图表空白区域单击鼠标左键,即在图表中添加了一个 Procedure 图符。 ()单击 Palette 面板中的 Pointer 工具或单击鼠标右键使鼠标鼠标处于选择状态。 ()双击刚添加的图符,弹出存储过程或函数属性窗口,如下图:()输入相应的 Name 和 Code 后(注意,Code 的命名我们一般采用 Pascal 命名法,让 你的存储过程更加直观,避免后期维护困难) ,选择 Definition 属性页,在下拉列表中选择 需要创建的类别:Procedur

5、e 或 Function。 ()在文本框中输入详细的 Procedure 或 Function 定义信息,你也可以通过使用工具栏 中的一些脚本项来编辑定义。此处输入如下脚本,点击 Preview 可以查看到生成的存储过 程代码。(7)单击”确认” ,完成存储过程或函数的创建过程。信 信 信 信 信 信当然,您也可以同时使用菜单栏上 Model-Procedure 来完成创建过程,这里不再赘述。1.1.3 将存储过程与表关联 如果当前 DBMS 支持存储过程的话,你可以使存储过程与数据表关联,该特性允许更 新表或从表中读取数据。当我们将 PDM 向 OOM 转换时,与数据表关联的存储过程就会转

6、化为所生成的类中的 Stereotype 为procedure的操作。通过将存储过程与数据表相关联, 你可以定义所生成的类中的操作。 当我们将 OOM 转化为 PDM 时,Stereotype 为procedure的类操作将转化为与最终 生成的表相关联的存储过程。 步骤: ()打开目标数据表的属性窗口。 ()选择 Procedure 属性页。 ()单击工具栏中 Add Objects 工具以打开对象选择(Selection)窗口. ()在现有存储过程列表中选择你所需要关联该表的存储过程,单击”OK” ,则相应存 储过程已经添加进存储过程列表中。 ()单击”确认”完成关联过程。这两个步骤你也可以

7、合并在一起,比如要创建一个最简单的删除操作的存储过程:输 入一个 Category 产品分类的 Id,删除分类 Id 和其相等的产品。 在编辑存储过程属性的窗口中选择你要操作的表:此后切换到 Definition 选项卡,就会发现多了几个模板可以选择:此后点击 Preview 就会看到将会生成的存储过程的预览了。阶段任务: 完成分类表的添加、查询和删除三个基本存储过程。 完成实现商品模糊搜索的存储过程。 完成库存变动的存储过程:输入参数为商品 Id 和变动数量,完成数据更新,注意如果跟新 前应判断如果是出货数量大于库存量,那么不应进行操作,或跟新后进行回滚操作。2数据库的创建修改和测试数据的生

8、成数据库的创建修改和测试数据的生成 到目前为止,我们已经完成了全部 PDM 的操作,那么,最终如何将这些 PDM 变为 SQL2008 中真正的数据库呢?、2.1 生成 SQL 脚本 ()选择 Database-Generate Database,弹出 Database Generation 窗口,其中 包含生成数据库的各种参数选项,如下图:()选择相应的脚本文件存放目录,并输入相应的脚本文件名称。 ()在 Generation 选项栏中选择 Script generation 单选框,确认生成数据库方 式为直接生成脚本文件。 ()勾选上 One file on,表示所生成脚本将包含于一个文件

9、中,否则 PowerDesigner 会为生成的每个不同表格都单独生成一个脚本文件 ()选择 options 选项卡,调整设置当前生成参数,你可以选择生成或不生成 哪些内容或设置它们的生成方式:()同样在 Selection 选项卡中选择要参与生成的表、视图、存储过程和域。()在 Preview 中预览无误后,单击”确定” ,完成生成脚本配置过程PowerDesigner 开始执行脚本生成过程,这时输出窗口会显示相应的生成过程信息, 最后弹出 Result 窗口,如下图:点击编辑 Edit,可以在文本框中拷贝处生成的脚本,在你的 SQL2008 中建立一个 新建查询,选择对应数据库后运行脚本即

10、可。 这个过程如果有错误,请根据提示检查问题。这时让我们利用已经生成的脚本文件来创建数据库,这里我们使用的 DBMS 是 MS SQLServer2000,其原因在前面提到,涉及主外键的问题。如果你不需要生成主外 键,那么可以使用 SQL2008,这样的话,你就可以直接将 powerdesigner 和你的 SQL2008 关联起来,直接在 SQL2008 中生成代码,而不必通过脚本来中转实现了。阶段任务: 1.参照上述操作过程,生成数据库脚本,并在 SQL2008 中执行,生成数据库。2.阅读生成的数据库脚本,明确代码内容和 CDM、PDM 的关系。2.2 直接创建数据库(使用 ODBC)

11、除了通过数据库脚本可以创建数据库外,我们还可以通过来直接创建数 据库。其操作如下: ()选择 Database-Generate Database。 ()选择相应的脚本存储目录,输入相应脚本名称。 注意:注意:不管使用哪种方式,数据库脚本都是会生成的,毕竟这是一个重要的 项目文档。 ()在 Generation 选项栏中选择 ODBC generation 单选框。 ()后续其它参数设置同前面生成脚本文件类似,不再赘述。 ()单击”确定”按纽,会弹出 Connect to an ODBC Data Source 窗口,如下图:()选中 ODBC Machine data source 单选框后

12、在下拉列表中选择对应的数据源; 或选中 File data source 并选取对应数据库文件。 ()输入对应用户登录信息(如果是使用 windows 验证登陆,那么就不要输入 任何信息) ,单击”Connect” ,确认连接,PowerDesigner 随即开始脚本生成进程,完 毕后弹出 Execute SQL Query 窗口,如下图: ()单击”Run” ,即开始数据库创建过程。 这个过程中,请注意 DBMS 的设置中数据库的选择要和 ODBC 中的设置对应。 如果要增加新的 ODBC 数据源,那么可以点击 Configure,出现下面界面:红色方框中分别为属性编辑和增加新的 ODBC。

13、 点击 Add Data Sourece,出现增加数据源的设置页面:你可以选择一个数据源进行设置,这里我们选择第 2 个,然后点击下一步进行操 作,出现下面界面选择数据源驱动程序:这里我们用的是 SQL2008,找到 SQL Server,点击下一步,再点击完成,即可完成 数据源的增加,并进入这个新数据源的设置页面:这里我们输入对该数据源的名称和描述,然后输入正确的 SQL 服务器的连接信息,并点击下一步进行登录方式的设置(windows 验证或用户名认证) ,完成后连续点击下 一步,采用默认设置即可完成数据库的配置。最终,将出现如下信息:点击“测试数据源” ,确定配置正常可以使用后即可在后面

14、操作中应用新增加的 ODBC 数据源了。提示:提示: 在这个教程中,我们是先设计了 CDM,再设计 PDM,但这并不是固定的,项目的 大小、熟悉程度、起步和个人习惯不一样,熟练业务的,项目小的直接用 PDM 设计 未尝不可。小技巧:小技巧: 如何设置生成的如何设置生成的 sql 脚本不含外键定义?脚本不含外键定义? 有些时候,为了防止后期程序开发过程中应约束导致的异常,可能在生成的 sql 脚本 中,你并不需要外键的约束,而是仅仅需要保留外键就可以了。因为部分人保持数据的一 致性并不想通过数据库提供的外键约束来做,而是通过自己的程序逻辑来保持一致性,这 样的好处坏处在此就不多讨论了。 当然你可

15、以删除其关系而保留外键后再生成代码,但这样 PDM 上就不直观了。你也可 以通过下面方式来实现: 设置方法为,选择DatabaseGenerate Database的 Option 选项卡中,去掉 Foreign Key 选项即可,如图:注意此处出了外键,你可以选择去掉或增加任何配置而得到你需要的 PDM。如何在生成的如何在生成的 SQL 脚本中增加一些中文的说明信息?脚本中增加一些中文的说明信息? 你在设计 CDM 和 PDM 的时候,每个表、每列数据都是由中文的 Name 和英文的 Code 组成的,但是最终得到的 SQL 脚本中,会发现实际用到的仅仅是 Code,此时你是否希望当 初的

16、Name 中的信息可以作为提醒性的文字在脚本中出现? 因数据列为例: 选择 DatabaseEdit Current DBMS,再选择 Script - Object - Column - Add 在显示的脚本开头加上“-%COLNNAME%,这里的%COLNNAME%就是指列的 Name, 前面的-是 SQl 注释标示。然后按提示保存修改。 这样生成代码后你会发现脚本如下: create table Inventory (-编号ItemId varchar(10) not null,-库存Qty int null ) 很棒吧,同样的原理,其他地方如果你想使用 Name 作为脚本的提示信息,都可以参 照上面进行设置。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号