如果SQL语句失败,如何确定脚本

时间:2011-01-26 20:35:35

标签: sql sql-server tsql sql-server-2008

我目前正在为我的项目键入一个脚本,目前很难找到有关如何完成MS SQL必须提供的大部分功能的信息。

我试图找出一种方法来测试SQL语句是否未能执行。例如,尝试插入表中已存在的记录。任何帮助将不胜感激

2 个答案:

答案 0 :(得分:5)

您可以使用SQL Server的try/catch capabilities

Another article source和示例T-SQL:

BEGIN TRY
  DECLARE @X INT
  -- Divide by zero to generate Error
  SET @X = 1/0
  PRINT 'Command after error in TRY block'
END TRY
BEGIN CATCH
  PRINT 'Error Detected'
END CATCH

E.g。处理catch块中的特定操作失败。

答案 1 :(得分:1)

尝试捕捉是要走的路。如果你在porcess中有很多步骤,并希望看到它在包括错误在内的某些日期所做的详细信息,那么你可以在每个步骤之后将所需的详细信息存储在表变量中(以及catch块中的错误) )然后在回滚后,将详细信息插入到permananet日志记录表中。这将为您提供错误的历史记录,这些错误在以后研究问题时非常宝贵。在临时表中,表变量不会超出回滚范围。