我有一个存储过程,SP1里面是调用了4个存储过程
sp1exec sp001 @startdate,@enddate,@data_unit_type,@data_unit_code,'',@task_id,@return_status output,@error_level output,@error_sqlcode output,@error_message output
if @return_status=-1 returnexec sp002 @startdate,@enddate,@data_unit_type,@data_unit_code,'',@task_id,@return_status output,@error_level output,@error_sqlcode output,@error_message output
if @return_status=-1 returnexec sp003 @startdate,@enddate,@data_unit_type,@data_unit_code,'',@task_id,@return_status output,@error_level output,@error_sqlcode output,@error_message output
if @return_status=-1 returnexec sp004 @startdate,@enddate,@data_unit_type,@data_unit_code,'',@task_id,@return_status output,@error_level output,@error_sqlcode output,@error_message output
if @return_status=-1 return后来运行的时候报错,我想在这个每个存储过程调用每个存储过程如果报错了则返回一个报错信息,该如何加啊??
sp1exec sp001 @startdate,@enddate,@data_unit_type,@data_unit_code,'',@task_id,@return_status output,@error_level output,@error_sqlcode output,@error_message output
if @return_status=-1 returnexec sp002 @startdate,@enddate,@data_unit_type,@data_unit_code,'',@task_id,@return_status output,@error_level output,@error_sqlcode output,@error_message output
if @return_status=-1 returnexec sp003 @startdate,@enddate,@data_unit_type,@data_unit_code,'',@task_id,@return_status output,@error_level output,@error_sqlcode output,@error_message output
if @return_status=-1 returnexec sp004 @startdate,@enddate,@data_unit_type,@data_unit_code,'',@task_id,@return_status output,@error_level output,@error_sqlcode output,@error_message output
if @return_status=-1 return后来运行的时候报错,我想在这个每个存储过程调用每个存储过程如果报错了则返回一个报错信息,该如何加啊??
@aa int
as
--你的操作
if @@error=0
return 1 --成功
else
return 0 --失败
godeclare @e int
exec @e=test @aa
if @e=0
print '失败'
declare @error_level_sp1 int, @error_sqlcode_sp1 varchar(512), @error_message_sp1 varchar(512)
declare @error_level_sp2 int, @error_sqlcode_sp2 varchar(512), @error_message_sp2 varchar(512)
declare @error_level_sp3 int, @error_sqlcode_sp3 varchar(512), @error_message_sp3 varchar(512)
declare @error_level_sp4 int, @error_sqlcode_sp4 varchar(512), @error_message_sp4 varchar(512)exec sp001 @startdate,@enddate,@data_unit_type,@data_unit_code,'',@task_id,@return_status output,@error_level output,@error_sqlcode output,@error_message outputselect @error_level_sp1=@error_level, @error_sqlcode_sp1=@error_sqlcode, @error_message_sp1=@error_message
if @return_status=-1 return exec sp002 @startdate,@enddate,@data_unit_type,@data_unit_code,'',@task_id,@return_status output,@error_level output,@error_sqlcode output,@error_message output
select @error_level_sp2=@error_level, @error_sqlcode_sp2=@error_sqlcode, @error_message_sp2=@error_message
if @return_status=-1 returnexec sp003 @startdate,@enddate,@data_unit_type,@data_unit_code,'',@task_id,@return_status output,@error_level output,@error_sqlcode output,@error_message output
select @error_level_sp3=@error_level, @error_sqlcode_sp3=@error_sqlcode, @error_message_sp3=@error_message
if @return_status=-1 returnexec sp004 @startdate,@enddate,@data_unit_type,@data_unit_code,'',@task_id,@return_status output,@error_level output,@error_sqlcode output,@error_message output
select @error_level_sp4=@error_level, @error_sqlcode_sp4=@error_sqlcode, @error_message_sp4=@error_message
if @return_status=-1 return根据错误变量即可获知。
自己给出错误提示消息消息
declare @count int
select @count=count(*) from jobs where max_lvl>1000
if @count=0
raiserror('有%d个max_lvl>1000的工作',16,1,@count)
执行后将返回:
-------------------------------------------------------------
服务器: 消息 50000,级别 16,状态 1,行 5
有0个max_lvl>1000的工作 根据错误号,输出各种语言的错误消息,如本例中错误号为2052
select description from master..sysmessages where msglangid=2052
这个是输出汉语的错误消息
select description from master..sysmessages where error=205
and msglangid=2052