【问题标题】:Run Select statement in Stored Procedure based on conditional logic基于条件逻辑在存储过程中运行 Select 语句
【发布时间】:2015-03-25 15:14:15
【问题描述】:

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

  1. 运行SELECT COUNT(*) FROM vw_GENERIC_VIEW_NAME

  2. 运行SELECT COUNT(*) FROM tbl_SIMPLE_TABLE_NAME

  3. 比较结果,如果它们不相等,则针对 tbl_SIMPLE_TABLE_NAME 运行 SELECT 语句以分析详细信息。

有没有办法通过某种条件逻辑比较结果,如果它们在 SQL Server 上的存储过程中不相等,则只运行最终的 SELECT 语句?

【问题讨论】:

标签: sql-server stored-procedures parameters


【解决方案1】:

IF 语句与<> 运算符一起使用

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

【讨论】:

    【解决方案2】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-08
      相关资源
      最近更新 更多