2011-01-26 90 views
1

我目前正在为我的一个项目输入一个脚本,并且目前很难找到有关如何执行MS SQL所提供的大部分功能的信息。如何确定脚本中SQL语句是否失败

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

回答

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 

例如处理catch块中的特定操作失败。

+0

啊谢谢你的提示,非常有帮助 – Steve 2011-01-27 04:03:44

+0

@Steve:没问题。但请不要忘记参加上/下投票并接受答案。这就是你如何验证一个答案,这是什么使得SO工作如此顺利。请查看FAQ:http://stackoverflow.com/faq,特别是声望部分。欢呼,欢迎来到SO! – 2011-01-27 04:11:06

1

尝试抓住是要走的路。如果你在一个porcess中有很多步骤,并且希望看到它在某个日期的详细信息,包括错误,那么你可以随时将你需要的详细信息存储在一个表变量中(并且catch块中的错误),然后在回滚之后,将详细信息插入到permananet日志记录表中。这会给你一个错误的历史,这在以后的研究中可能是无价的。表变量不会在临时表回滚时超出范围。