首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎么获取动态SQL语句执行异常的信息(SQL SERVER2000)

2012-12-18 
如何获取动态SQL语句执行错误的信息(SQL SERVER2000)declare @tpsql nvarchar(2000)set @tpsqlNupdate C

如何获取动态SQL语句执行错误的信息(SQL SERVER2000)
  declare @tpsql nvarchar(2000)

  set @tpsql=N'update CMSEPA set EPA019=('+@EHC024+') WHERE EPA001=10000'
  
  EXECUTE sp_executesql @tpsql

  if (@@error<>0)
  begin
    set @errorcode='计算规则设置发生错误!'
    return   
  end 

这个语句执行错误就直接退出了,没有任何信息带出,(@errorcode=''),怎么捕捉得到了?
[最优解释]
sp_executesql 的返回值就是 @@error:

declare @err int

exec @err = sp_executesql N'select 1/0'
print '@@error = ' + ltrim(@err)
/*
消息 8134,级别 16,状态 1,第 1 行
遇到以零作除数错误。
@@error = 8134
*/

[其他解释]
try catch
[其他解释]
begin try
  raiserror('生成一个错误消息',11,1)
end try
begin catch
  select error_message() as 错误消息,
         error_severity() as严重级别,
         error_state() as state;
end catch

[其他解释]
2000也有这个语句?
[其他解释]
declare @err int
exec @err = sp_executesql N'select 1/0'
print '@@error = ' + ltrim(@err)
/*
消息 8134,级别 16,状态 1,第 1 行
遇到以零作除数错误。
@@error = 8134
*/

热点排行