SQL Server: отслеживание вставки таблицы - PullRequest
1 голос
/ 17 января 2012

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

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

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

Ответы [ 2 ]

3 голосов
/ 17 января 2012

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

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

OR

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

0 голосов
/ 17 января 2012

Вы можете использовать sp_depends , например:

sp_depends tablename

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

...