#mysql #sql #sql-server
#mysql #sql #sql-сервер
Вопрос:
Я хочу создать таблицу в SQL, где имя столбца (что-то вроде userid) записывает идентификатор человека, который изменил поле.
можно ли это сделать, и если да, то как.
Нужен SQL-скрипт для создания таблицы с вычисляемым столбцом, который автоматически записывает идентификатор пользователя
Пожалуйста, помогите
Комментарии:
1. что вы имеете в виду под идентификатором человека? вы имеете в виду идентификатор пользователя SQL Server Person? или идентификатор пользователя, который вы сгенерировали в своей модели данных? Кстати, sql-server отличается от mysql, какой движок БД вы используете?
2. Вы используете MySQL или MS SQL Server? Не помечайте продукты, которые не задействованы.
3. Я просто хочу знать, возможно ли записать, кто внес изменения в данные.
4. Я использую Microsoft SQL server
Ответ №1:
Я думаю, вам нужно что-то вроде триггера.
как определено MSDN
Триггер — это особый вид хранимой процедуры, которая автоматически выполняется при возникновении события на сервере базы данных.
в вашем сценарии триггер сохранит идентификатор пользователя после его обновления.
ваш вопрос немного неясен, хотя, где бы вы взяли имя пользователя?
предполагая, что имя пользователя является учетной записью входа в sql server
сценарий триггера будет примерно таким
ALTER TRIGGER [dbo].[SaveUserID]
ON [dbo].[Employee]
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
if UPDATE(employee_name)
begin
insert into auditTrail (username,useridChanged)
values (SYSTEM_USER,(select employee_name from deleted))
end
END
Столбец audittrail будет username и useridchanged .
Обратите внимание, что этот код предназначен для Sql Server
Комментарии:
1. Большое спасибо, Джошуа, это именно то, что я искал