У меня есть вопрос, связанный с оператором if ... else в sql, я хочу выполнить 'и' в условии достижения определенного условия - PullRequest
0 голосов
/ 01 июля 2019

Эта строка возврата первой совпадающей строки может быть SQL-запросом, чтобы избежать такой неоднозначности или проблем.

CREATE PROCEDURE test 
    @name1 NVARCHAR(MAX),
    @name2 NVARCHAR(MAX)
AS
BEGIN
    IF @name1 = 'test'
        PRINT '1'
    ELSE IF (@name1 = 'test1' AND @name2 = 'test')
        PRINT '2'
END
//----------------------------------------------
EXEC test 'test1','test' //I want to return '2' but its return '1' 

/*
NOW I WANT TO ACHIEVE '2' WITHOUT CHANGING ORDER 
HOW WE CAN ACHIEVE 
*/

Моя логика кода следующая: я создавал хранимую процедуру для вставки, обновления и удаления, и теперь я хочу добавить еще одну операцию, такую ​​как объединение, поэтому я хочу передать то же имя таблицы в качестве параметра, но его имя выше имени

Смотрите пример, который я попробую:

ALTER PROCEDURE [dbo].[spAllOperation] 
    @action NVARCHAR(MAX) = NULL,
    @tableName NVARCHAR(MAX) = NULL,
    @P1_string NVARCHAR(MAX) = NULL,
    @P2_string NVARCHAR(MAX) = NULL,
    @P3_string NVARCHAR(MAX) = NULL,
    @P4_string NVARCHAR(MAX) = NULL,
    @P5_int INT = NULL,
    @P6_int INT = NULL,
    @P7_int INT = NULL,
    @P8_int INT = NULL,
    @P11_date DATE = NULL
AS
BEGIN
    IF @action = 'INSERT'
    BEGIN   
        IF @tableName = 'Student_Details'
            INSERT INTO Student_Details (Name, Roll_No, DoB, Gender, Addr, contact_No, Col_Id, R_Id)  
            VALUES (@P1_string, @P5_int, @P11_date, @P2_string, @P3_string, @P4_string, @P6_int, @P7_int)
        ELSE IF @tableName = 'College_Details'
            INSERT INTO College_Details  
            VALUES (@P1_string, @P2_string, @P3_string, @P4_string)
    END
    ELSE IF @action = 'UPDATE'
    BEGIN
        IF @tableName = 'Romm_Details'
            UPDATE Romm_Details 
            SET status = @P1_string 
            WHERE Id = @P5_int
    END
    ELSE IF @action = 'DELETE'
    BEGIN
        PRINT '3'
    END
    ELSE IF @action='JOIN'
         IF @tableName = 'Student_Details' 
              /*
MY PROBLEM IS HERE WHEN I PASS THE TABLE NAME ITS MUST BE GOING TO CURRENT BLOCK
               .
               .
              */
    BEGIN

    END
END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...