如何检查在SQL Server存储过程中执行的最后一条SQL语句的状态?
代码:
laplace
想检查上述语句的状态并在这些语句之后触发一些代码。
答案 0 :(得分:0)
您可以将要检查的语句放在TRY..CATCH块中。如果失败,它将进入CATCH块。如果成功,它将转到它之后的下一个语句。
psuedo代码示例:
BEGIN TRY
SET @SQLStmt = N'CREATE CLUSTERED COLUMNSTORE INDEX CCSI ON '+ @DBName +N'.dbo.' + @ResultTableName + N' WITH ( DROP_EXISTING = OFF )'
EXEC dbo.pCOMMON_PrintVariable ': Create Clustered Columnstore Index: ', @SQLStmt
EXEC sp_executesql @SQLStmt
--do whatever you want to do if the above statements succeed
END TRY
BEGIN CATCH
--do whatever you want to do if the above statements fail
END CATCH
答案 1 :(得分:0)
在需要检查状态的语句后添加以下代码:
IF(@@ERROR <> 0)
BEGIN
// error occurred - place error-handling tasks here
SELECT 'ERROR'
END
ELSE
BEGIN
// code executed successfully
SELECT 'SUCCESS'
END