运行 Select 基于条件逻辑的存储过程中的语句

Run Select statement in Stored Procedure based on conditional logic

我最近一直在将 SQL Server 2008 上的许多正式手动流程简化为存储过程。我正在尝试将下面的多步骤过程转换为具有条件逻辑的存储过程,但不确定如何实现。

  1. 运行 SELECT COUNT(*) FROM vw_GENERIC_VIEW_NAME

  2. 运行 SELECT COUNT(*) FROM tbl_SIMPLE_TABLE_NAME

  3. 比较结果,如果它们不相等 运行 对 tbl_SIMPLE_TABLE_NAMESELECT 语句以分析细节。

有没有一种方法可以通过某种条件逻辑来比较结果,如果它们在 SQL 服务器上的存储过程中不相等,则只有 运行 最后的 SELECT 语句?

使用 IF 语句和 <> 运算符

IF (SELECT COUNT(*) FROM vw_GENERIC_VIEW_NAME) <> (SELECT COUNT(*) FROM tbl_SIMPLE_TABLE_NAME)
BEGIN
Select ... From tbl_SIMPLE_TABLE_NAME
END

您可以只比较 IF 语句中 2 个表的计数,如果值不匹配,则有条件地在块内执行代码:

IF ( SELECT COUNT(*)
     FROM   vw_GENERIC_VIEW_NAME
   ) != ( SELECT    COUNT(*)
          FROM      tbl_SIMPLE_TABLE_NAME
        )
    BEGIN
        PRINT 'NOT EQUAL - run your code in place of this print statement'
    END