如何sqlserver2005 返回最后执行的 Transact-SQL 语句
如何捕获sqlserver2005 返回最后执行的 Transact-SQL 执行报错语句
不是错误号,是执行报错的语句哦
------解决方案--------------------报错的语句是不被执行的,这个......在哪可以找到呢..............
你执行时的出错提示不就是一种捕获么....
另外,查@@ERROR,如果那句执行后不为零,就是出错了.
------解决方案--------------------应该通过SQL PROFILER来跟踪吧
------解决方案--------------------
------解决方案--------------------declare @bp int,@err int
set @bp = 1
SQL语句
seleCt @err = @@error
if @err != 0
goto ErrHandle;
set @bp = 2
SQL语句2
select @err = @@error
if @err != 0
goto ErrHandle;
ErrHandle:
raiserror('bp=%d,err=%d',18,1,@bp,@err)
删除错误信息。
------解决方案--------------------SQL code
--我一般这样调试
select * from tb1
print '111'
select * from tb2
print '222'
--....
--如果报错就不会print的出信息或者是在print之后再带打印出红色的错误信息,这样就知道是哪里出问题了
------解决方案--------------------
参照:
错误函数
TRY...CATCH 使用错误函数来捕获错误信息。
ERROR_NUMBER() 返回错误号。
ERROR_MESSAGE() 返回错误消息的完整文本。此文本包括为任何可替换参数(如长度、对象名称或时间)提供的值。
ERROR_SEVERITY() 返回错误严重性。
ERROR_STATE() 返回错误状态号。
ERROR_LINE() 返回导致错误的例程中的行号。
ERROR_PROCEDURE() 返回出现错误的存储过程或触发器的名称。
------解决方案--------------------