【问题标题】:SQL Server Error Handling, Determine if Record Exists, Then Execute ProcedureSQL Server 错误处理,判断记录是否存在,然后执行过程
【发布时间】:2013-02-13 09:02:33
【问题描述】:

我有一个脚本,我想每晚执行多次,基于表中不确定的项目数量(随机,每晚)。我打算让它每 5/10 分钟执行一次。

该过程在“主表”中查找一个项目并将其克隆到其他必要的表中。

基本上我可以让脚本运行,它每次都会失败,但我想比这更聪明一点,并保存所有错误消息。

如何首先确定是否要克隆项目...然后根据结果执行或中止脚本?

我试过了;

BEGIN TRY

--Procedure

END TRY

BEGIN CATCH

--Procedure

END CATCH

但这似乎只是执行,有错误......

或者 IF 语句可能是更好的方法?

谢谢!

【问题讨论】:

    标签: sql sql-server error-handling try-catch


    【解决方案1】:

    IF 将是要走的路:

    IF EXISTS (/*Statement to check if rows exist*/)
    BEGIN
    
      --Procedure
    
    END
    

    如果IF 条件不满足,程序将不会运行。你只需要找出一个合适的检查。

    【讨论】:

    • 具有讽刺意味的是,我的问题标题中有 IF & EXISTS 字样.. :) 非常感谢!
    【解决方案2】:
    IF EXISTS (SELECT * FROM MyTable WHERE myConditions)
    BEGIN
    INSERT INTO OtherTable SELECT * FROM MyTable WHERE myConditions
    END
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-23
      • 2011-08-10
      • 1970-01-01
      • 1970-01-01
      • 2019-04-20
      • 2012-10-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多