sql - 在 SQL Server 中运行过程的 IF 条件
问题描述
我正在尝试创建一个 if 语句,如果locked=0,那么它应该在下面的程序中执行,如果locked=1,那么它不应该在下面的程序中执行
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[usp_UpdateForecast]
@ScenarioName VARCHAR(255),
@FiscalMonthID INT
AS
BEGIN
SET NOCOUNT ON;
IF (@FiscalMonthID = (SELECT TOP 1 FISCALMONTHID
FROM ForecastPeriodLock
WHERE locked = 0 AND [STATUS] = 'Close'
AND FiscalMonthId = @FiscalMonthID
ORDER BY FiscalMonthId)
AND (@FiscalMonthID != 0))
PRINT @FISCALMONTHID;
PRINT @ScenarioName;
BEGIN
EXEC [dbo].[usp_Backup_Tables]
EXEC SMIStaging.[dbo].[LoadSMIFinancePlanDataToSMIForecastOpCoOpex]
@ScenarioName = @ScenarioName,
@fiscalmonthid = @FiscalMonthID
EXEC SMIStaging.[dbo].[LoadSMIFinancePlanDataToSMIForecastOpCoPeriods]
@ScenarioName = @ScenarioName,
@fiscalmonthid = @FiscalMonthID
END
PRINT @FISCALMONTHID;
PRINT @ScenarioName;
END
--EXEC [dbo].[usp_UpdateForecast] @ScenarioName='AOP Plan', @fiscalmonthid=202001
解决方案
附上你的 if 条件Begin
Create PROCEDURE [dbo].[usp_UpdateForecast]
@ScenarioName VARCHAR(255)
,@FiscalMonthID INT
AS
BEGIN
SET NOCOUNT ON;
IF (
@FiscalMonthID=(SELECT TOP 1 FISCALMONTHID FROM ForecastPeriodLock WHERE locked = 0 AND [STATUS]='Close' AND FiscalMonthId=@FiscalMonthID ORDER BY FiscalMonthId)
AND
(@FiscalMonthID != 0)
)
BEGIN
PRINT @FISCALMONTHID;
PRINT @ScenarioName;
EXEC [dbo].[usp_Backup_Tables]
EXEC SMIStaging.[dbo].[LoadSMIFinancePlanDataToSMIForecastOpCoOpex] @ScenarioName=@ScenarioName, @fiscalmonthid=@FiscalMonthID
EXEC SMIStaging.[dbo].[LoadSMIFinancePlanDataToSMIForecastOpCoPeriods] @ScenarioName=@ScenarioName, @fiscalmonthid=@FiscalMonthID
END
PRINT @FISCALMONTHID;
PRINT @ScenarioName;
END
推荐阅读
- dart - Angular Dart 中的工具提示
- c - 我在 C 中使用 sscanf 和 fscanf 真的很难
- javascript - 如何在 .net framework mvc 项目中设置 JavaScript
- java - 任务 ':run' 执行失败。> Process 'command...finished with non-zero exit value 1
- javascript - 将十进制数的 JavaScript 字符串转换为数字而不丢失尾随零
- angular - Angular 6、ServiceWorker ios Safari 和 Video 元素字节范围请求
- javascript - Why do I need to copy an array to use a method on it?
- javascript - JavaScript 中的 ' 和 ` 有什么区别,我如何才能开始工作?
- javascript - 网页抓取:如何在 Chrome 扩展程序中抓取 popup.html 中的数据
- makefile - 对“cudaGetDeviceCount”的未定义引用 对“cudaGetDeviceProperties”的未定义引用