sql2005的存储过程和触发器调试大法(原创).docx

sql2005的存储过程和触发器调试大法(原创).docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
■++P ■+ + P 新淫存砖过程0D 修改加 编写存储过程脚本为G)卜 重命名 删除①) 刷新(?) 昨天晚上我找遍了互联网也没有发现关于 SQL2005存储过程和触发器的调试方法,研究 到凌晨2点多钟,终于找到方法了,不干独享,拿出来分享。如果要转载,请保留版权,谢 谢! 在SQL2000中,我们想要调试存储过程非常简单,只需要在对象浏览器中找到存储过 程,然后点击鼠标右键选择 执行(调试)”就可以弹出一个工具栏出来,进行调试。然而到 了 SQL2005中同样的操作却变成了生成一段 SQL语法,没有调试功能,如果使用了 Express 版本会更加郁闷,连 执行菜单都没有,如图所示: Express版本中,菜单中根本没有 执行” 功能。 一I可骗程性 L U存储过程 目」系圻存储过崔 田[ 」函数 u数据库袖发器 」程序集 」类型 _J规则 冒U默认值 [一j Broker 出u安全性 安全性 服务器刑象 那么调试功能到什么地方去了呢? 别急,我找到了。原来微软把调试功能放在了 VS2005中了。注意是VS2005,不是SQL2005, 打开VS2005,选择工具、再选择连接到数据库”。选择正确的数据库名和表名,填入正确的 登陆信息就可以了,如图: 阿冈 输入信唄以连接到选定的数据遞』或单击更改选蒔另亠个数据 源和/或提供程序? 数据渡①: Micrczoft SQL Servtr CSqlCli 更改?… .■■- 」 服务器名(E): CAKGON-TASKTOP1 \S9LEJ( PRESS V I刷新⑻j 登录到服务器 迄使用lindows身份脸证山〕 使用SQL Server身f芬脸证(Q) 在服务器资源管理 就可以看到写在数据库中的存储过程和触发器代码了,右击相应的存储 过程,便可以看见”单步执行调试 的字样如图所示:如果这段存储过程可以触发 ”触发器 中代 码,那么触发器的代码也是可以调试的。 我来举个例子调试一下。 1、 在数据中建立一个表 AllMo ney 列ID 类型INT ,该字段为自增字段,每插入一条数据就增加一个。 列 MyMoney 类型 Money 2、 在数据中建立一个表 LastID 列ALLMoneylD 类型为INT,该字段将通过触发起自动更新值, 当表AllMoney每插入一列 的时候,这个字段就自动更新为 AllMoney中的最大ID值。 3、 建立存储过程给 AllMoney添加数据: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE SP_ln sertMo ney @MyMo ney AS MONEY AS BEGIN SET NOCOUNT ON; INSERT INTO AllMo ney(My Mon ey) VALUES(@MyMo ney) END GO 4、在表AllMoney中建立触发器,更新表 LastID SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TRIGGER INSERT_LastID ON AllMo ney AFTER INSERT AS BEGIN SET NOCOUNT ON DECLARE @ID AS INT SELECT @ID = MAX(ID) FROM AllMo ney UPDATE LastID SET AllMo neylD=@ID END GO 当上面两个添加好后,然后再 VS中来调试。 首先打开触发器代码。并设置断点: 然后选择存储过程,点击右键选择单步调试存储过程。 在弹出的对话框填入正确的参数: 这是就可以按F10来进行调试了,当数据插入成功后,就会触发 ”触发器 代码,前面我们在 触发器中设置断点就会断下来了,如图: dbv. . zpreSs. t i tii ) dbc. SF_Inse. . . xpres^. ciCi) BEGIN —SET HOCOlfKT ON to prevent extra result stts from 一 ini arfaring with SELECT stitemcuts. SET BOCOUBT OJf DECLARE 虹D AS THT J EEUECT 虹乔 HlAXQin FKOM ALLMonl ― tnm电rt :far trigMEt here 丽5竝E L瓷tin SET肛耐「曲町1亦6工d| END ⑥ l=_ 一 — 局部变呈 j名称 1值 * @ID 斗 还可以看见变量的值,很不错吧!

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档