Я бы порекомендовал использовать триггер после вставки, чтобы сделать это, есть несколько хороших примеров:
http://msdn.microsoft.com/en-us/library/ms189799.aspx
Если вы создадите свой триггер для таблиц, в которые вставляются данные, он будет срабатывать каждый раз, когда происходит вставка с любого терминала. Внутри триггера вы можете записать детали вставки в файл журнала, возможно, используя совет pranay_stacker.
В качестве примера чего-то, что я быстро набрал:
create TRIGGER dbo.productTrigger
on dbo.Product
after insert
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
declare @data nvarchar(255);
DECLARE dataCursor CURSOR FAST_FORWARD FOR
select ProductCode from inserted;
OPEN dataCursor
FETCH NEXT FROM dataCursor
INTO @data
WHILE @@FETCH_STATUS = 0 BEGIN
declare @cmd sysname;
set @cmd = 'echo ' + @data + ' >> c:\test\var_out2.txt';
exec master..xp_cmdshell @cmd, NO_OUTPUT;
FETCH NEXT FROM dataCursor
INTO @data
END
CLOSE dataCursor;
DEALLOCATE dataCursor;
END
Вам, конечно, придется изменить базу данных, имена таблиц и т. Д.
Еще одна вещь, которую нужно иметь в виду, это то, что вам нужно включить xp_cmdshell, так как по умолчанию SQL-сервер отключил его, это делается с помощью:
EXEC master.dbo.sp_configure 'show advanced options', 1
RECONFIGURE
EXEC master.dbo.sp_configure 'xp_cmdshell', 1
RECONFIGURE
go
И, наконец, последнее, что я заметил, это то, что когда я получал эхо-сигнал для c: \ var_out2.txt, он давал мне «Отказано в доступе», однако, когда я менял его на c: \ test \ var_out2.txt, он работал нормально. , Так что имейте это в виду тоже.