У меня есть таблица. В этой таблице у меня есть два столбца - «insert_name» и «modified_name». Мне нужно вставить в эти столбцы данные о том, кто вставил данные в таблицу ('insert_name') и кто изменил эти данные в таблице (modified_name). Как это можно сделать?Как вставить в таблицу запись имени пользователя
ответ
Вы ищете основные DML заявления.
Если Ваша запись уже в таблице, значит, вам нужно UPDATE
. В противном случае, когда вы собираетесь добавить к нему свою запись, и она еще не существует в таблице адресатов, вы ищете оператор INSERT INTO
.
Пример обновления информации для записи с первого ID:
UPDATE yourtable SET insert_name = 'value1', modified_name = 'value2' WHERE id = 1
Пример вставки новой записи:
INSERT INTO yourtable(id, company_name, product_name, insert_name)
VALUES (1, 'Google', 'PC', 'value1')
Если вы ищете для автоматического изменения в этих колонках, то вам нужно заглянуть в триггеры.
Помните, что чаще всего вы можете обнаружить, что приложение подключения к базе данных с использованием одного пользователя базы данных, в этом случае вы, вероятно, знаете, контекст внутри самого приложения (который вставляет, кто обновляет). Это устраняет триггеры и ставит задачу прямо на простые команды вставки/обновления из вашего прикладного уровня.
Возможно, вы сможете использовать функцию CURRENT_USER, чтобы найти имя пользователя, внесшего изменения.
Значение этой функции может быть использовано для обновления соответствующего столбца. Это обновление может быть выполнено как часть инструкции INSERT или UPDATE. В качестве альтернативы используйте триггер INSERT или UPDATE.
Лично я избегаю срабатывания, если смогу.
Для этих 2 столбцов добавить Current_User в качестве ограничения по умолчанию. В первый раз, когда приложение Insert Statement сохранит их с текущими именами пользователей входа. Для обновления напишите триггер обновления с тем же оператором Current_User для столбца Modified_Name.
Если и только в случае, если бизнес-логика приложения не может обновить столбец modified_nme, тогда перейдите только к Trigger.
Смотрите использование Current_Use https://msdn.microsoft.com/en-us/library/ms176050.aspx
Добавьте графическое представление или данные, чтобы объяснить это. –
Я добавил графическое представление –