Я хочу создать хранимую процедуру, в которой первый оператор выбора и, в зависимости от выбранного параметра, если он допустим, вставляют запись в другую таблицу, иначе ничего не делают.Как написать хранимую процедуру для этого?
Я пробовал с хранимой процедурой, и она выполняется без ошибок, но когда я пытался выполнить хранимую процедуру EXEC, она не выполняет задачу, как написано в процедуре.
CREATE PROCEDURE sp_CreateExpiryDocumentFollowup
(@param INT = NULL,
@param2 INT = NULL,
@param3 INT = 1,
@param4 BIT = 0,
@followupid INT = NULL)
AS
BEGIN
SELECT
@param1 = [TABLE_A].[VEHICLE_ID],
@param2 = [TABLE_A].[VEHICLE_DOCUMENT_ID],
@followupid = [TABLE_B].[FOLLOWUP_ID]
FROM
[TABLE_A]
LEFT JOIN
[TABLE_B] ON [TABLE_B].[VEHICLE_DOCUMENT_ID] != [TABLE_A].[VEHICLE_DOCUMENT_ID]
WHERE
[TABLE_A].[STATUS] = 1;
IF @followupid = NULL
BEGIN
INSERT INTO [TABLE_B] (VALUE_1, VALUE_2, VALUE_3, VALUE_4)
VALUES (@param1, @param2, @param3, @param4)
END
END
GO
Я ожидаю, что запись будет вставлена в TABLE_B
, если @followupid is null
.@followupid
является нулевым, поскольку я выполнил только оператор выбора.Но при выполнении всей хранимой процедуры возвращается строка результата 0, которая в моем случае должна быть равна 1. И я также проверил таблицу, никакая запись не вставлена, но хранимая процедура успешно выполняется.