代码之家  ›  专栏  ›  技术社区  ›  Rain Check

如果ELSE或用例或两者的组合

  •  -1
  • Rain Check  · 技术社区  · 8 年前

    试图解决这个问题,但不确定如何纠正。

    我需要先检查一下 条形码

    如果没有,则需要检查哪些不正确:

    如果 出席 不正确,然后选择@Err

    如果 不正确,然后选择@Err2

    提前谢谢。

    -- Returns scan details
        DECLARE @Err nvarchar(Max) = 'Already scanned'
        DECLARE @Err2 nvarchar(Max) = 'Barcode not found'
    
        IF (EXISTS(SELECT * FROM [Test].[dbo].[Events] WHERE Attended = '0' AND Barcode = @scan))
            BEGIN
                UPDATE [Test].[dbo].[Events] SET Attended = GETDATE() WHERE Barcode = @scan
                SELECT Title, Forename, Surname, Constituency, Category, Barcode, EventDate, EventName, Attended FROM [Test].[dbo].[Events] WHERE Barcode = @scan
                END
        ELSE
        BEGIN
        -- select @Err
        END
    
    1 回复  |  直到 8 年前
        1
  •  0
  •   Víctor Beltrán    8 年前

    我认为你需要这样的东西:

    -- Returns scan details
    DECLARE @Err nvarchar(Max) = 'Already scanned'
    DECLARE @Err2 nvarchar(Max) = 'Barcode not found'
    
    IF (EXISTS(SELECT * FROM [Test].[dbo].[Events] WHERE Attended = '0' AND Barcode = @scan))
        BEGIN
            UPDATE [Test].[dbo].[Events] SET Attended = GETDATE() WHERE Barcode = @scan
            SELECT Title, Forename, Surname, Constituency, Category, Barcode, EventDate, EventName, Attended FROM [Test].[dbo].[Events] WHERE Barcode = @scan
        END
    ELSE IF (EXISTS(SELECT * FROM [Test].[dbo].[Events] WHERE Barcode = @scan))
        BEGIN
            select @Err
        END
    ELSE
        BEGIN
            SELECT @Err2
        END