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
Это только информация о состоянии в той же базе данных, но она может сказать, что вам нужно!