执行一个存储过程,执行过程可能会出现错误.如何跳过错误,继续往下执行后面的存储代码?

Pra_lijian 2009-11-20 05:02:57
拆分成两个存储过程
CREATE PROC p1
as
DECLARE @sql nvarchar(400)
SET @sql = N'exec opendatasource(''SQLOLEDB'',''Data Source=10.10.1.2;User ID=iemis;Password=yinyuerp'').VIETNAM.dbo.sp_executesql N''update VIETNAM..ieap05h set status=''''Y'''',check_date=convert(varchar(10),getdate(),111) where ap_chno=''''V9110001'''''''
EXECUTE sp_executesql @sql
IF @@ERROR <> 0
PRINT 'ERROR'
ELSE
PRINT 'OK'
go

CREATE PROC P2
AS
EXEC p1
IF @@ERROR <> 0
PRINT 'fail'
ELSE
PRINT 'sucess'

我想执行 P2 时.要么显示 fail,要么sucess.但是当10.10.1.2服务不可用的时候
不是显示fail 而是
消息 17,级别 16,状态 1,第 1 行
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied.
...全文
437 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
icelovey 2009-11-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 pra_lijian 的回复:]
有人知道的吗?MSSQL2000中哦
[/Quote]

2000里面不知道还有什么办法, 2005里面可以TRY CATCH END..就可以捕捉到错误, 返回你想要的
Pra_lijian 2009-11-21
  • 打赏
  • 举报
回复
有人知道的吗?MSSQL2000中哦
--小F-- 2009-11-20
  • 打赏
  • 举报
回复
不清楚 学习
xina0511 2009-11-20
  • 打赏
  • 举报
回复
使用goto语句不行吗?
好汉坡 2009-11-20
  • 打赏
  • 举报
回复
SQL Server does not exist
netcup 2009-11-20
  • 打赏
  • 举报
回复
修改p1,增加输出参数,输出错误代码,在P2种判断错误代码,返回你指定的消息。
dawugui 2009-11-20
  • 打赏
  • 举报
回复
这个貌似得用事务来控制了.有请石头出场.
icelovey 2009-11-20
  • 打赏
  • 举报
回复
好像这个在查询分析器里面错误都会出现的吧..不过你可以自定义错误的消息..
然后在前台程序显示你自定义的那个消息

34,575

社区成员

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

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