2016-11-13 3 views
0

У меня есть таблица. В этой таблице у меня есть два столбца - «insert_name» и «modified_name». Мне нужно вставить в эти столбцы данные о том, кто вставил данные в таблицу ('insert_name') и кто изменил эти данные в таблице (modified_name). Как это можно сделать?Как вставить в таблицу запись имени пользователя

enter image description here

+0

Добавьте графическое представление или данные, чтобы объяснить это. –

+0

Я добавил графическое представление –

ответ

1

Вы ищете основные 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') 

Если вы ищете для автоматического изменения в этих колонках, то вам нужно заглянуть в триггеры.


Помните, что чаще всего вы можете обнаружить, что приложение подключения к базе данных с использованием одного пользователя базы данных, в этом случае вы, вероятно, знаете, контекст внутри самого приложения (который вставляет, кто обновляет). Это устраняет триггеры и ставит задачу прямо на простые команды вставки/обновления из вашего прикладного уровня.

0

Возможно, вы сможете использовать функцию CURRENT_USER, чтобы найти имя пользователя, внесшего изменения.

Значение этой функции может быть использовано для обновления соответствующего столбца. Это обновление может быть выполнено как часть инструкции INSERT или UPDATE. В качестве альтернативы используйте триггер INSERT или UPDATE.

Лично я избегаю срабатывания, если смогу.

0

Для этих 2 столбцов добавить Current_User в качестве ограничения по умолчанию. В первый раз, когда приложение Insert Statement сохранит их с текущими именами пользователей входа. Для обновления напишите триггер обновления с тем же оператором Current_User для столбца Modified_Name.

Если и только в случае, если бизнес-логика приложения не может обновить столбец modified_nme, тогда перейдите только к Trigger.

Смотрите использование Current_Use https://msdn.microsoft.com/en-us/library/ms176050.aspx