select @ReturnMessage = FORMATMESSAGE(50001, 12,34)EXEC sp_dropmessage 50001,'us_english' select * from sysmessages where error=50001
thank's: pengdali(大力) & zqllyh(找感觉) 但我的想法是在sp或调用sp中获得并控制此消息,并决定用什么信息返给用户。 我的代码: declare @err_msg as nvarchar(200) declare @ret_string as nvarchar(200) select @err_msg=description from master.dbo.sysmessages where msglangid=2052 and error=@err set @err_msg=replace(@err_msg,'''','"') set @err_msg=replace(@err_msg,'%1!','%s') set @err_msg=replace(@err_msg,'%2!','%s') set @err_msg=replace(@err_msg,'%3!','%s') set @err_msg=replace(@err_msg,'%4!','%s') declare @sql as nvarchar(200)
if (@s3+@s2+@s1) is not null begin EXEC Master.DBO.xp_sprintf @ret_string OUTPUT,@err_msg,@s1,@s2,@s3 select @ret_string return end if (@s2+@s1) is not null begin EXEC Master.DBO.xp_sprintf @ret_string OUTPUT,@err_msg,@s1,@s2 select @ret_string return end if (@s1) is not null begin EXEC Master.DBO.xp_sprintf @ret_string OUTPUT,@err_msg,@s1 select @ret_string return end if (@s1) is null begin EXEC Master.DBO.xp_sprintf @ret_string OUTPUT,@err_msg select @ret_string return end =========================================================================== 似乎太繁琐了,能简化一下吗?
select @ReturnMessage = N'积分%d排名%d' EXEC master.dbo.sp_addmessage 50001, 16, @ReturnMessage,'us_english'
select @ReturnMessage = FORMATMESSAGE(50001, 12,34)EXEC sp_dropmessage 50001,'us_english'
select * from sysmessages where error=50001
但我的想法是在sp或调用sp中获得并控制此消息,并决定用什么信息返给用户。
我的代码:
declare @err_msg as nvarchar(200)
declare @ret_string as nvarchar(200)
select @err_msg=description from master.dbo.sysmessages where msglangid=2052 and error=@err
set @err_msg=replace(@err_msg,'''','"')
set @err_msg=replace(@err_msg,'%1!','%s')
set @err_msg=replace(@err_msg,'%2!','%s')
set @err_msg=replace(@err_msg,'%3!','%s')
set @err_msg=replace(@err_msg,'%4!','%s') declare @sql as nvarchar(200)
if (@s3+@s2+@s1) is not null
begin
EXEC Master.DBO.xp_sprintf @ret_string OUTPUT,@err_msg,@s1,@s2,@s3
select @ret_string
return
end
if (@s2+@s1) is not null
begin
EXEC Master.DBO.xp_sprintf @ret_string OUTPUT,@err_msg,@s1,@s2
select @ret_string
return
end
if (@s1) is not null
begin
EXEC Master.DBO.xp_sprintf @ret_string OUTPUT,@err_msg,@s1
select @ret_string
return
end
if (@s1) is null
begin
EXEC Master.DBO.xp_sprintf @ret_string OUTPUT,@err_msg
select @ret_string
return
end ===========================================================================
似乎太繁琐了,能简化一下吗?