请问假设表TEMP不存在,然后如下
DECLARE @NB_ERROR_STRING VARCHAR(255)
INSERT INTO TEMP VALUES(1)
IF @ERROR<>0
SET @NB_ERROR_STRING='TEMP表不存在'
现在碰到的问题就是mssql一碰到错误就直接终止运行了,不会执行IF @ERROR<>0以下的语句,请问有什么方法可以将错误信息赋值给@NB_ERROR_STRING,谢谢。
DECLARE @NB_ERROR_STRING VARCHAR(255)
INSERT INTO TEMP VALUES(1)
IF @ERROR<>0
SET @NB_ERROR_STRING='TEMP表不存在'
现在碰到的问题就是mssql一碰到错误就直接终止运行了,不会执行IF @ERROR<>0以下的语句,请问有什么方法可以将错误信息赋值给@NB_ERROR_STRING,谢谢。
PRINT 1/0
select @r = @@ERROR
print 'Error message:'+@r服务器: 消息 8134,级别 16,状态 1,行 2
遇到被零除错误。
Error message:8134
还有就是编写SQL的时候注意一下可以人为处理的错误不要丢给机器去处理,如对象不存在,处理如下:
DECLARE @NB_ERROR_STRING VARCHAR(255)
IF NOT EXISTS(SELECT 1 FROM SYSOBJECTS WHERE ID = OBJECT_ID('TEMP'))
BEGIN
SET @NB_ERROR_STRING='TEMP表不存在'
END
ELSE
BEGIN
INSERT INTO TEMP VALUES(1)
ENDIF @NB_ERROR_STRING IS NOT NULL
PRINT @NB_ERROR_STRING