运行 Select 基于条件逻辑的存储过程中的语句
Run Select statement in Stored Procedure based on conditional logic
我最近一直在将 SQL Server 2008 上的许多正式手动流程简化为存储过程。我正在尝试将下面的多步骤过程转换为具有条件逻辑的存储过程,但不确定如何实现。
运行 SELECT COUNT(*) FROM vw_GENERIC_VIEW_NAME
运行 SELECT COUNT(*) FROM tbl_SIMPLE_TABLE_NAME
比较结果,如果它们不相等 运行 对 tbl_SIMPLE_TABLE_NAME
的 SELECT
语句以分析细节。
有没有一种方法可以通过某种条件逻辑来比较结果,如果它们在 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
我最近一直在将 SQL Server 2008 上的许多正式手动流程简化为存储过程。我正在尝试将下面的多步骤过程转换为具有条件逻辑的存储过程,但不确定如何实现。
运行
SELECT COUNT(*) FROM vw_GENERIC_VIEW_NAME
运行
SELECT COUNT(*) FROM tbl_SIMPLE_TABLE_NAME
比较结果,如果它们不相等 运行 对
tbl_SIMPLE_TABLE_NAME
的SELECT
语句以分析细节。
有没有一种方法可以通过某种条件逻辑来比较结果,如果它们在 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