#sql-server
#sql-server
Вопрос:
У меня есть таблица с именем user со столбцами, такими как FirstName, LastName, Location, City и т. Д. Я хотел сделать это после того, как пользователь обновит свою информацию, я хотел отследить, какие столбцы обновляются пользователем без создания какого-либо триггера. Для получения информации об обновлении я использовал хранимую процедуру.Я хочу вернуть обновленное имя столбца поля без создания триггера.
CREATE PROCEDURE [UpdateInfo]
(@FirstName NVARCHAR(20),
@LastName NVARCHAR(1000),
@Location NVARCHAR(1000),
@City NVARCHAR(400)
)
AS
BEGIN
IF EXISTS(SELECT 1 FROM [user] WHERE FirstName = @FirstName)
BEGIN
UPDATE [user]
SET FirstName = ISNULL(@FirstName, FirstName),
LastName = ISNULL(@LastName, LastName),
Location = ISNULL(@Location, Location),
City = ISNULL(@City, City)
WHERE FirstName = @FirstName
END
END
Комментарии:
1. Пожалуйста, покажите нам, что вы пробовали, и помогите нам помочь вам, предоставив нам образцы данных.
2. ‘Для этого я использовал хранимую процедуру.’ — так в чем вопрос?
3. Что означает «I»? И почему хранимая процедура? Что-то должно иметь контекст того, что изменилось. Это доступно (примерно) в триггере. Это также известно (или известно) процессу, который обновляет строку. Может быть, можно использовать CDC?