Вставка в значение SQL с включенным условием - PullRequest
0 голосов
/ 09 мая 2018

Я пытаюсь написать хранимую процедуру для изменения сеанса в моей таблице Sessions. Мне нужно иметь возможность вставлять значения в указанную строку, то есть с включенным условием, хотя я не уверен, как.

Вот мой код (я знаю, что не могу сделать INSERT INTO> VALUES> WHERE, но я пытаюсь дать вам представление о том, что я хочу сделать).

CREATE PROCEDURE [dbo].[TT_Modify_Session]
    @SessionName NVARCHAR(50),
    @TrainingName NVARCHAR(100),
    @Trainee NVARCHAR(20),
    @TrainingDate DATE,
    @SessionID INT
AS
    SET NOCOUNT ON;

    BEGIN TRY
    BEGIN TRAN
        INSERT INTO dbo.TT_Sessions (SessionName, Trainee, TrainingDate, TrainingName)
        VALUES @SessionName, @Trainee, @TrainingDate, @TrainingName
        WHERE @SessionID = [SessionID] 

        COMMIT
    END TRY
    BEGIN CATCH
        ROLLBACK
        PRINT ERROR_MESSAGE()
    END CATCH

    RETURN @sessionID

Любая помощь очень ценится!

1 Ответ

0 голосов
/ 09 мая 2018

Вы описываете код для «изменения» значений, которые уже существуют в таблице. Это UPDATE ...

(INSERT добавляет новую строку в таблицу и оставляет все ранее существующие строки такими, какими они были ...)

UPDATE
  dbo.TT_Sessions
SET
  SessionName  = @SessionName,
  Trainee      = @Trainee,
  TrainingDate = @TrainingDate,
  TrainingName = @TrainingName
WHERE
  SessionID = @SessionID
...