Итак, у меня есть две таблицы: User и LogUser. Когда я обновляю таблицу User, старые данные должны храниться в истории в таблице LogUser.Как создать процедуру для отслеживания последних измененных данных
Я создал процедуру обновления, но не знаю, как сохранить историю измененных данных.
Процедура обновления:
CREATE PROCEDURE dbo.UpdateUser
(
@UserID int,
@Name nvarchar(40),
@Address nvarchar(60),
@City nvarchar(15),
)
AS
SET NOCOUNT OFF;
UPDATE [dbo].[User] SET [UserID] = @UserID, [Name] = @Name, [Address] = @Address, [City] = @City,WHERE (([UserID] = @UserID));
ПРОЦЕДУРА:
CREATE PROCEDURE dbo.UpdateUser
(
@UserID int,
@Name nvarchar(40),
@Address nvarchar(60),
@City nvarchar(15)
)
AS
BEGIN
INSERT INTO
dbo.LogUser (UserID, Name, Address, City)
SELECT
UserID, Name, Address, City
FROM
dbo.User
WHERE
UserID = @UserID;
UPDATE
dbo.User
SET
UserID = @UserID,
Name = @Name,
Address = @Address,
City = @City
WHERE
UserID = @UserID;
END
Спасибо, это то, что мне нужно. Итак, моя процедура должна выглядеть так? .. редактируемый вопрос. – McKeymayker
Да. Я сделал одно изменение кода выше: я удалил «SET UserID = @UserID», поскольку это было излишним. –