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