怎么判断存储过程是否执行

tutuziwoaini 2013-10-15 04:23:41
就行sql语句可以判断@@ROWCOUNT来判断执行成功与否
那存储过程怎么判断呢
...全文
333 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Landa_Aiden 2013-10-15
  • 打赏
  • 举报
回复
把存储过程拆开来,传几个参数进去,看看你执行的数据是否正确,正确的话就是 对的 如果出错 那就是 错的
水族杰纶 2013-10-15
  • 打赏
  • 举报
回复
重要的业务可以 考虑建立一张日志表 来记录
LongRui888 2013-10-15
  • 打赏
  • 举报
回复

create proc proc_t(@i int)
as

select 5 * 1.0 / @i
go


--1.不会报错
begin try
	begin tran
		exec proc_t 1
		select '执行成功'
	commit tran
end try
begin catch
  select '执行失败'
  if @@trancount >0 
     rollback
end catch


--2.这次会报错,因为分母为0
begin try
	begin tran
		exec proc_t 0
		select '执行成功'
	commit tran
end try
begin catch
  select '执行失败'
  if @@trancount >0 
     rollback
end catch


LongRui888 2013-10-15
  • 打赏
  • 举报
回复
如果你的系统是2005以后的话,可以用try catch: create proc proc_t(@i int) as select 5 * 1.0 / @i go --1.不会报错 begin try begin tran exec proc_t 1 select '执行成功' commit tran end try begin catch select '执行失败' if @@trancount >0 rollback end catch --2.这次会报错,因为分母为0 begin try begin tran exec proc_t 0 select '执行成功' commit tran end try begin catch select '执行失败' if @@trancount >0 rollback end catch
Landa_Jimmy 2013-10-15
  • 打赏
  • 举报
回复

create table #tab(ft int,ftn int,ftname varchar(20),old int)
insert into #tab
select 0,1,'a',1 union all
select 0,2,'b',2 union all
select 0,3,'c',3 union all
select 1,8,'d',1 union all
select 1,9,'e',1 union all
select 2,10,'f',2 union all
select 2,11,'g',2 union all
select 3,12,'h',3


alter proc usp_#tab
as
declare @a varchar(50)
begin
	if 1=1
	begin
		delete from #tab
		set @a='执行成功'
	end
	if 1=2
	begin
		set @a='执行失败'
	end
	select @a
end
Landa_Peter 2013-10-15
  • 打赏
  • 举报
回复
用数据库跟踪服务sql srver Profiler查看数据库有没有变动
-Tracy-McGrady- 2013-10-15
  • 打赏
  • 举报
回复
数据变了,就执行了啊
發糞塗牆 2013-10-15
  • 打赏
  • 举报
回复
这个要看你的sp是来干嘛的,如果是返回数据,就检查里面有没有数据,如果是一些业务操作比如修改数据,那就检查是否有操作的痕迹,目前没见过能直接判断出来的,等楼下补充

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧