存储过程辅助调试

程序调用存储过程,方便简洁,而且如果逻辑有问题,修改存储过程就行,没有必要对程序进行升级,这个是最大的好处。但是现实中,存储过程往往也会出现一些问题.

现在谈谈怎么用辅助方式来发现存储过程的一些技巧.

1)别名。假如正式生产环境下,客户发现你的程序有问题,你环境程序调用的存储过程PROC_A有问题。你想修改PROC_A的,但是又不能立即修改。其实,你可以这么做,将存储过程PROC_A的内容拷贝出来,重新创建一个名字为PROC_B的存储过程,这样你就可以在正式环境下直接传入相关的参数来执行PROC_B看看执行的效果直到修改好PROC_B,没有问题后。再将新修改的存储过程内容替换上去

2)在调试存储过程,需要看看执行到哪一步的效果,可以用print打印相关日志查看到效果.

类似以下的存储过程PROC_A:留意定义的@msg变量,将整形以及字符串的转换后直接打印出来.这样调用存储过程之后就可以看到下面的打印日志

create proc PROC_A
( 

@ID     varchar(20)
)
as
begin
	  declare @msg varchar(255)
	  select  @msg='test'
	  print @msg
	  declare @a int
	  a=10
	  select @msg = convert( varchar, @a)
	  print @msg
end
go
print    'PROC_A'
go

3)还可以接入创建表来帮助定位问题,在存储过程里面插入test表一些相关数据,然后查看test表执行到哪一部了.

drop table Test
create table Test
(
Id   numeric(8, 0)		not null,
msg  varchar(255)          null
)

create proc PROC_A
( 

@ID     varchar(20)
)
as
begin
   insert into Test(Id,msg) values(0, convert( varchar, @ID) )
end
go
print    'PROC_A'
go

上面的存储过程调用完成之后,查询test表就可以看到效果了

时间: 2024-10-13 16:11:59

存储过程辅助调试的相关文章

Charles辅助调试接口(转)

原文地址Charles辅助调试接口 前面有一篇讲了关于抓包工具fiddler和charles,这里再写写我是怎样用charles辅助调试接口.Charles下载传送门. 这篇文章写了个头,没时间就一直放着没写,今天刚好周六,也早点下班了(苦逼的周六加班党),就把这个写完吧,其实这两天有点感冒头晕晕的,尽量不写错吧. 经常会有这样的场景: 场景一: 想看看其他的App是怎样设计请求,怎样设计返回数据格式,某一个功能点请求分几个实现的.最近我在用某听书软件听鬼故事(^0^),它们限制非VIP每天只能

YUV422蓝屏显示输出功能辅助调试

YUV422有YUYV,YVYU,UYVY,VYUY四种,以下笔者就就以UYVY为例介绍一下数据构成.因为常常要跟视频输入打交道,所以YUV422这种常见的视频信号是常常碰到的.有时候我们调试一个模块输出YUV422,然后再显示出来.非常多时候,可能没法准确推断你那个模块是不是已经正常跑起来了,跑起来来的情况下,是不是真的有数据输出,有了数据输出后来的数据究竟对不正确. 带着这些疑问,当然有非常多对策,笔者就先把这个事情一分为二,以YUV422数据为界限分两部分,假设怀疑是模块没有输出YUV42

mysql 存储过程错误调试记录

 mysql存储过程错误调试记录 公司平台在mysql数据库上运行,一些存储过程报错,调试过程痛苦,记录错误及解决办法,供参考. 调试环境:dbForge Studio for MySQL 6.1版本,试用版: 1.BIZ_GET_ORGAN_BY_CONDITION 问题1:提示递归调用错误,递归次数太多:根据业务设置,最大255: [email protected]@max_sp_recursion_depth = 10; 常见如乱码造成导致条件失效,出现死循环: 问题2:变量的内容是乱

Oracle存储过程的调试

在工作汇总有时候程序会调用存储过程来实现某些功能,因为这样的话,速度更快.所以学习如何调试存储过程就非常的重要. 首先,打开PLSQL DEVELOPMENT首先介绍一下,这个软件的各个窗口是用来干什么的. 如图,这是PLSQL工具左侧的窗口,每个窗口的作用,在这里,我们讨论如何在plsql中进行oracle的存储过程的调试功能.所以主要看2和3. 2.是package文件夹,里面存放的就是存储过程,3是oracle的类型,是被存储过程调用. 首先我们找到java程序中调用存储过程的代码,那里会

安卓投屏助手(B1358)之辅助调试

Android远程桌面助手的中文版——安卓投屏助手正式上线.安卓投屏和远程控制的软件其实已经非常多了,如Vysor.Total Control.Mobizen.ApowerMirror.TeamViewer.向日葵远程控制手机软件等等,为啥还要再搞个安卓投屏助手出来?原因无它,主要是为了提高工作的效率,主要体现在今天要介绍的辅助调试功能这一块.Android开发和测试人员每天要输入太多次的adb命令,而adb命令很多,有的又很长,不容易记,敲起来也麻烦.所以辅助调试功能其一就是要搞定adb命令,

MySql存储过程的调试

写和调试存储过程比较好的工具是dbForge studio for mysql 校验其中临时表字段是否符合要求,在存储过程中动态为临时表添加字段约束,或者写个游标,把数据迭代出来,一个个判断.当游标迭代时发现错误,可以手动执行一条错误的语句(如insert into notExists values(1)),来终止存储过程. 但是以上加约束或者游标遍历,出现错误时,在Java调用端仅仅提示xxx not exists 或者 xxx should not be null 等错误,并没有提供具体在存

SQL Server中存储过程的调试方法

1.以管理员用户登录DB服务器,把域用户追加到「Administrators」组. 2.在本机上以域用户登录,启动VS. 3.追加DB连接 4.右击要debug的存储过程,选择「ストアドプロシージャにステップイン」. 5.像普通的.NET程序一样进行Debug 6.追加监视

vs2010调试sql2008存储过程

1.安装vs2010sp1补丁 2.vs中打开服务器资源管理器,并进行数据库连接,连接时要注意 3. 4.可以打开数据库中的存储过程进行调试了

存储过程调试

SQL SERVER2008存储过程调试 昨天被问到sql server中存储过程怎么调试,我曾经写存储过程,调试方法非常笨拙,就是逐条运行语句,然后查看结果是不是预期的,这样的调试方法,实在是无奈之举,极大程度地限制了开发速度和准确性.今天在他的提点下,研究了下SQL SERVER 2008的存储过程调试. 1.在SQL SERVER2008中调试存储过程 下面内容引自MSDN SQL SERVER 2008的SSMS是支持单步debug的,可是在调试之前必须配置权限. 假设 SQL Serv