создайте столбец, в котором записан идентификатор пользователя SQL

#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. Большое спасибо, Джошуа, это именно то, что я искал