Эта строка возврата первой совпадающей строки может быть 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