2017-09-19 31 views
-1

试图弄清楚这一点,但不知道如何做到这一点正确。如果ELSE或使用案例或两者的组合

我需要先检查是否出席条码在表活动正确的,如果这样就会更新。

如果没有需要检查什么不正确:

如果出席是不正确的,然后选择@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 
+0

可否请您详细说明这个问题'如果不是这样,它需要检查什么是不正确的。' – TheGameiswar

回答

0

我想你需要的东西是这样的:

-- 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 

问候。

+0

有时候,别人只是指出它的答案是如此简单谢谢维克多。 –

+0

不客气。请将此答案标为正确。谢谢 –

+0

检查答案我修改它 –

相关问题