根据条件逻辑在存储过程中运行Select语句

时间:2015-03-25 15:14:15

标签: sql-server stored-procedures parameters

我最近将SQL Server 2008上的许多正式手动流程简化为存储过程。我试图将下面的多步骤过程转换为带有条件逻辑的存储过程,但不知道如何实现这一点。

  1. 运行SELECT COUNT(*) FROM vw_GENERIC_VIEW_NAME

  2. 运行SELECT COUNT(*) FROM tbl_SIMPLE_TABLE_NAME

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

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

2 个答案:

答案 0 :(得分:2)

IF运算符

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

答案 1 :(得分:1)

您可以只比较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