2017-12-12 2 views
-1

Ich versuche, mehrere Bedingungen innerhalb zu überprüfen, wenn Block, aber es ist mein Code innerhalb, wenn Block noch ausgeführt wird, auch wenn GUIDStatement 'ContactDetailsGUID' oder 'FILECONTENTSGUID' oder 'AccountGUID' ist.Mehrere oder Bedingung in Sql Store-Prozedur

Ich habe einen Cursor, der der GuidStatement-Variable einen einzelnen Wert zuweist. Zu jedem beliebigen Zeitpunkt hat meine Variable @GUIDStatements also einen beliebigen Namen. Meine Bedingung If darf nicht ausgeführt werden, wenn mein GUID-Statement einen der obigen Werte hat

Meine if-Bedingung lautet wie folgt. Bitte helfen Sie.

IF ((@GUIDStatements <> 'ContactDetailsGUID') OR (@GUIDStatements <> 'FILECONTENTSGUID') OR (@GUIDStatements <> 'AccountGUID')) 
+1

_ "es funktioniert nicht" _ ist keine Problembeschreibung. Was ist passiert? Warum war das nicht das, was du wolltest? Welche Daten setzen Sie ein und welche Daten möchten Sie herausgeben? Was passiert stattdessen? Sie haben nicht annähernd genug Informationen bereitgestellt, um eine Frage beantworten zu können. –

+0

Für nicht-null '@ GUIDStatements' ist diese Bedingung immer wahr. – GSerg

+0

Aktualisierte Frage. @GUIDstatements erhält immer andere GUID-Namen. – Abhijit

Antwort

2

Führen Sie den folgenden Code aus. Der erste Codeblock, Ihr Code, gibt false zurück, unabhängig vom Wert von @GUIDStatements. Der zweite Block, suggest, gibt false zurück, wenn @GUIDStatements in einem der drei Werte und sonst wahr ist. Ich denke, wenn ich Ihre Frage verstehe, ist das, wonach Sie suchen. Wenn nicht, bitte Kommentar und ich werde versuchen, zu klären.

DECLARE @GUIDStatements SYSNAME = N'not'; 

-- 
-- your code 
------------------------------------------------- 
IF (
    (
     @GUIDStatements <> 'ContactDetailsGUID' 
    ) 
    OR 
    (
     @GUIDStatements <> 'FILECONTENTSGUID' 
    ) 
    OR 
    (
     @GUIDStatements <> 'AccountGUID' 
    ) 
    ) 
    SELECT N'false' 
ELSE 
    SELECT N'true'; 

-- 
-- suggestion 
------------------------------------------------- 
IF @GUIDStatements IN ('ContactDetailsGUID', 'FILECONTENTSGUID', 'AccountGUID') 
    SELECT N'false' 
ELSE 
    SELECT N'true'; 
+0

Vielen Dank. Es funktioniert gut – Abhijit

0

Wie wäre:

IF @GUIDStatements NOT IN ('ContactDetailsGUID', 'FILECONTENTSGUID', 'AccountGUID') 

einfacher zu zu halten.