@@error的錯誤值

linguojin11 2009-11-24 03:34:50
create table lin1(id int)
insert into lin1 select 1
insert into lin1 select 1
go

create proc lin11242
@id int
as
declare @error int
update lin1 set @error=(select id from lin1 where id=@id)

set @error=@@error
return @@error

go
declare @error int
exec @error=lin11242 1
select @error
go
drop table lin1
drop proc lin11242


我是想构造出一个返回其他error值的過程,目的是要捕捉系統的錯誤。我上面为什么实现不了呢,老是直接提示错误而没返回值呢?在書上看是說即使有錯誤也會返回錯誤值的,
难道这种情况不算是错误吗?是哪种错误情况才会继续执行并返回错误代码?
...全文
81 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
linguojin11 2009-11-24
  • 打赏
  • 举报
回复
我搞不清楚的是爲什麽在語句中用if @@error<>0,如果语句出现错误时if @@error<>0后面的语句都没机会执行,能给个简单的例子吗。。
linguojin11 2009-11-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jia_guijun 的回复:]
SQL codedeclare@errornvarchar(20)select@error=N'错误演示'raiserror(@error,16,1)/*结果
消息 50000,级别 16,状态 1,第 3 行
错误演示*/
[/Quote]
我不是這個意思。。呵呵。。
jia_guijun 2009-11-24
  • 打赏
  • 举报
回复
declare @error nvarchar(20)
select @error=N'错误演示'
raiserror(@error,16,1)
/*结果
消息 50000,级别 16,状态 1,第 3 行
错误演示
*/
  • 打赏
  • 举报
回复
create proc lin11242

应该带有一个输出参数,把@error输出

34,587

社区成员

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

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