我最近将SQL Server 2008上的许多正式手动流程简化为存储过程。我试图将下面的多步骤过程转换为带有条件逻辑的存储过程,但不知道如何实现这一点。
运行SELECT COUNT(*) FROM vw_GENERIC_VIEW_NAME
运行SELECT COUNT(*) FROM tbl_SIMPLE_TABLE_NAME
比较结果,如果它们不相等,请针对SELECT
运行tbl_SIMPLE_TABLE_NAME
语句以分析详细信息。
有没有办法通过某种条件逻辑比较结果,如果它们在SQL Server上的存储过程中不相等,则只运行最终的SELECT
语句?
答案 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