Проверить, кто/когда обновил столбец в SQL Server

Мне очень трудно ответить на этот вопрос моим коллегам, иногда мы вносим изменения в таблицу, и мы не знаем, кто или когда был изменен, у меня есть этот запрос, но иногда он не совсем точен.

SELECT OBJECT_NAME(OBJECT_ID) AS DatabaseName, last_user_update,*
FROM sys.dm_db_index_usage_stats
WHERE database_id = DB_ID( 'MYDB') --DB Name
AND OBJECT_ID=OBJECT_ID('MyTable') --Table Name

есть ли другой точный способ ответить на этот вопрос?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
305
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы говорите о том, кто изменил структуру таблицы

Если это было достаточно недавно, оно все еще может быть зафиксировано в скользящем трассировка по умолчанию:

DECLARE @path NVARCHAR(260);

SELECT 
   @path = REVERSE(SUBSTRING(REVERSE([path]), 
   CHARINDEX(CHAR(92), REVERSE([path])), 260)) + N'log.trc'
FROM    sys.traces
WHERE   is_default = 1;

SELECT 
  LoginName,
  HostName,
  StartTime,
  ObjectName,
  TextData
FROM sys.fn_trace_gettable(@path, DEFAULT)
WHERE EventClass = 164    -- Object:Altered
AND EventSubClass = 1
ORDER BY StartTime DESC;

Если нет, то, возможно, пришло время инвестировать в DDL-триггеры, контроль версий/управление изменениями, не давать всем вашим коллегам достаточно прав для изменения базы данных или во все вышеперечисленное...

Если вы говорите о том, кто изменил данные в таблице

SQL Server не отслеживает эти данные. Вы можете посмотреть на комбинацию триггеров DML, аудита SQL, отслеживания изменений, сбора измененных данных, Временные таблицы. Ваш выбор будет зависеть от вашей версии и выпуска SQL Server, объема данных, которые меняются, и отслеживание каких таблиц вам нужно...

Другие вопросы по теме