SQL插入到包含条件的值中

SQL插入到包含条件的值中,sql,sql-server,stored-procedures,sql-insert,Sql,Sql Server,Stored Procedures,Sql Insert,我正在尝试编写一个存储过程来修改会话表中的会话。我需要能够将值插入到指定的行中,即包含条件,尽管我不确定如何插入 这是我的代码,我知道我无法插入到>值>何处,但我试图让您了解我想做什么 CREATE PROCEDURE [dbo].[TT_Modify_Session] @SessionName NVARCHAR(50), @TrainingName NVARCHAR(100), @Trainee NVARCHAR(20), @TrainingDate DATE,

我正在尝试编写一个存储过程来修改会话表中的会话。我需要能够将值插入到指定的行中,即包含条件,尽管我不确定如何插入

这是我的代码,我知道我无法插入到>值>何处,但我试图让您了解我想做什么

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

非常感谢您的帮助

您描述了修改表中已有值的代码。这是一个更新

INSERT向表中添加新行,并保留所有预先存在的行的原样

在您的WHERE中,[SessionID]与什么有关?您没有FROM子句。是否需要更新而不是插入?或者您需要插入[table]列,从[table]中选择列,其中[SessionId]=@SessionId?
UPDATE
  dbo.TT_Sessions
SET
  SessionName  = @SessionName,
  Trainee      = @Trainee,
  TrainingDate = @TrainingDate,
  TrainingName = @TrainingName
WHERE
  SessionID = @SessionID