这可能是一个相当新手的问题,但我无法在 MSDN 在线示例中找到如何在 Transact-SQL 中结束 IF/ELSE 块。例如,我想创建一个执行此操作的 SP:
USE [MyDb];
GO
SET ANSI_NULLS ON;
GO
SET QUOTED_IDENTIFIER ON;
GO
CREATE PROCEDURE [dbo].[usp_MyStoredProc]
@param1 DATE, @param2 INT, @param3 BIT, @param4 [dbo].[CustomDataType] READONLY
WITH EXEC AS CALLER
AS
-- Only run this part if @param3 == true
IF (@param3 = 1)
BEGIN
--do stuff...
END
-- I don't really need an else here, as I'm simply doing an
-- extra step at the beginning if my param tells me to
-- I always want this next part to run...
-- do more stuff...
GO
我有一个我认为可行的解决方案(发布为下面的答案),但我觉得我正在解决我缺乏知识的问题,而不是做最好的模式。
编辑-我删除了我的第一个解决方案,因为它是一个可怕的想法,并且不希望其他人尝试实现它。原来问题实际上是这种情况下的解决方案;谢谢大家。