powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / отслеживание удаления
5 сообщений из 5, страница 1 из 1
отслеживание удаления
    #36785548
BuKTaP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток. Вопрос по аудиту одной из таблиц БД.
Есть программа, с которой работают несколько пользователей.
Нужно сделать таблицу, в которой будут храниться удаляемые данные+имя компьютера с которого произошло удаление.
Где-то нашёл и пользую триггер такого вида:

CREATE TRIGGER DelUpdDocStringD ON [dbo].[DocString]
FOR DELETE
AS

DECLARE @NameUs varchar (50) --эта переменная будет использоваться для получения имени компа

create table #sp_who2
(SPID int null,
STATUS varchar(1000) null,
Login varchar(1000) null,
HostName varchar(1000) null,
BlkBy varchar(1000) null,
DbName varchar(1000) null,
Command varchar(1000) null,
CPUTime int null,
DISKIO int,
LasTBatch varchar(1000) null,
ProgramName varchar(1000) null,
SPID2 int
)
insert #sp_who2 exec sp_who2
select @NameUs=HostName from #sp_who2 where status='runnable'

INSERT INTO tmpDocStringD (IdDoc, <остальные поля из удаляемой таблицы>, DateUpd, NameUs)
SELECT NameVidTov, <остальные поля из удаляемой таблицы>, getdate(), @NameUs from Deleted

все данные кроме имени компа заносятся нормально. в поле имени компа заносятся, то пустые значения, то " ." и только иногда реальные названия компов, но не тех, что нужно
подскажите как поправить или предложите другой вариант.
Заранее благодарен.

PS предлогали кусок кода, который отслеживает имя компа, запихнуть в транзакцию, но я в этом ни бум-бум.
...
Рейтинг: 0 / 0
отслеживание удаления
    #36785671
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пользователи работают с базой напрямую ?
К-л сервера приложений или терминального режима нет ?
...
Рейтинг: 0 / 0
отслеживание удаления
    #36786212
BuKTaP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LSVПользователи работают с базой напрямую ?
К-л сервера приложений или терминального режима нет ?
не совсем понял ваш вопрос (особенно "К-л сервера приложений"), но постараюсь ответить
есть сервер, на нём стоит SQL Server 2000, есть база данных.
у каждого пользователя есть приложение, которое коннектится к базе и работает с ней.
терминального режима нет
...
Рейтинг: 0 / 0
отслеживание удаления
    #36786356
Ortogon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще, обычно в логи все таки заносится не имя компа, а логин, под которым пользователи к базе цепляются. Ща скуля под рукой нет, но насколько я помню, в sp_who2 со статусом runnable может далеко не один юзер быть, а все, кто там базу курочит в данный момент.

А может у вас DNS чудит?
...
Рейтинг: 0 / 0
отслеживание удаления
    #36786454
BuKTaP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
товарищи, всем спасибо... ответили мне вот тут
/topic/780824&pg=-1
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / отслеживание удаления
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]