SQL Server: отслеживание вставки таблицы

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

Есть ли способ отследить вставки? Я имею в виду, чтобы узнать, по каким запросам они были вставлены, кто отправил эти запросы и т. Д. Как можно больше информации.

Я пробовал несколько способов сам (например,sp_who2 'Active' хранимая процедура) без какого-либо успеха. У меня также есть доступ к машине, на которой запущен сервер SQL, и к файлам резервных копий транзакций (файлам.trn), но я не знаю, как открыть эти файлы.

2 ответа

Решение

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

getdate(),
host_name(),
App_Name(),
suser_sname()

Мне кажется что этого достаточно

Триггер выглядит так:

CREATE TRIGGER YourTrigger On YourTable
AFTER INSERT
AS
SET NOCOUNT ON;

   INSERT logtable
   SELECT APP_NAME(), HOST_NAME(), SUSER_SNAME(), GETDATE(), * FROM INSERTED
GO

ИЛИ ЖЕ

Вы можете использовать Sql Server Profiler для перехвата запросов - он может быть более гибким

Вы можете использовать sp_depends как это:

sp_depends tablename

Это только информация о состоянии в той же базе данных, но она может сказать, что вам нужно!

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