Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Знатоки помогите написать триггер / 16 сообщений из 16, страница 1 из 1
27.08.2002, 09:52:37
    #32046030
Good
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знатоки помогите написать триггер
Мне нужно создать триггер на добавление и на изменение (один триггер )
который запишет в дублирующей таблице измененную строку а также имя того кто изменил,дату и число изменения а также вид (если это добавка то 1 если изменение то 2).

ПОМОГИТЕ !!!!!!!!!!!!
...
Рейтинг: 0 / 0
27.08.2002, 10:16:10
    #32046037
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знатоки помогите написать триггер
Ну если так до сих пор ничего не написали сами (хотя бы пробный вариант), то читайте Реализация простого аудита с помощью триггеров
...
Рейтинг: 0 / 0
27.08.2002, 10:23:56
    #32046041
Good
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знатоки помогите написать триггер
To Glory

Спасибо хорошие примеры.
Только как мне объеденить в один триггер и чтобы был условие на добавление или изменение
...
Рейтинг: 0 / 0
27.08.2002, 10:48:49
    #32046054
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знатоки помогите написать триггер
Только как мне объеденить в один триггер

Ну так попробуйте! В чем же дело ?



и чтобы был условие на добавление или изменение

в примере это есть
...
Рейтинг: 0 / 0
27.08.2002, 11:59:53
    #32046113
Good
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знатоки помогите написать триггер
GLORY

Не получается
...
Рейтинг: 0 / 0
27.08.2002, 12:03:25
    #32046114
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знатоки помогите написать триггер
Текст - в студию !
...
Рейтинг: 0 / 0
27.08.2002, 12:12:27
    #32046119
AndreK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знатоки помогите написать триггер
По наличию строк в Inserted и Deleted выясняешь на что реагирует триггер. Можно так:

Код: plaintext
1.
2.
3.
4.
DECLARE @tip char( 3 )
IF exists(select * from inserted) and exists(select * from deleted) SELECT @tip='upd' 
  ELSE IF exists(select * from inserted) and  not exists(select * from deleted) SELECT @tip='ins' 
    ELSE IF not exists(select * from inserted) and exists(select * from deleted) SELECT @tip='del' 
       ELSE SET @tip='osh'


а функция updated(Field_name) даёт истину если поле редактировалось. Это чтоб лишней работы не делать...
Удачи.
...
Рейтинг: 0 / 0
27.08.2002, 12:15:44
    #32046121
Good
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знатоки помогите написать триггер
CREATE TRIGGER [TRIGGER1] ON [dbo].[TEST]
FOR INSERT,UPDATE
AS
BEGIN
INSERT INTO TEST1
(KOD,
STR_MY,
MY_DATE,
MY_TIME,
MY_USER)
select KOD,STR_MY,GETDATE(),'2',SYSTEM_USER FROM inserted
END

1.SYSTEM_USER - SA .а мне надо имя которыи сделал изменение.Что делать если все подключаются с SA

2. В таблице есть еще один столбец- MY_ACTIVE
3.Я не знаю как внести условие в SELECT
...
Рейтинг: 0 / 0
27.08.2002, 12:33:10
    #32046133
Good
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знатоки помогите написать триггер
SYSTEM_USER - SA .а мне надо имя которыи сделал изменение.Что делать если все подключаются с SA
...
Рейтинг: 0 / 0
27.08.2002, 12:39:40
    #32046135
MichaelGK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знатоки помогите написать триггер
А HOST_NAME ( ) подойдет? Будешь знать с какого ПК сделано изменение, напряжешь хозяина.
...
Рейтинг: 0 / 0
27.08.2002, 12:45:01
    #32046138
AndreK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знатоки помогите написать триггер
Что делать если все подключаются с SA
Руки оторвать хозяину и развести клиентов именами и паролями.
...
Рейтинг: 0 / 0
27.08.2002, 13:11:26
    #32046146
Good
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знатоки помогите написать триггер
Все работает в лучем виде . Спасибо всем а особенно GLORY

Теперь толко я должен написать такои триггер для 60 таблиц а код получился внушительный. Можно ли как то упростить.Например выяснить если ето INSERT или UPDATE на общем уровне а не для каждого триггера.(глобальнная переменная ?????)

GLORY если выразишь желание посматреть мои код буду очень признателен
...
Рейтинг: 0 / 0
27.08.2002, 13:52:58
    #32046178
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знатоки помогите написать триггер
А чего я ? Вон вам сколько люди насоветовали.

Например выяснить если ето INSERT или UPDATE на общем уровне а не для каждого триггера.(глобальнная переменная ?????)

Если вы разрешите пользователям "общаться" с вашей таблицей только через процедуры, причем для каждого действия через свою процедуру (INSERT/UPDATE/DELETE/SELECT), то вы всегда будете знать, что именно пользователь собирается сделать с таблицей.

Можно создать 3 триггера - для каждого действия свой.

А то о чем вы говорите, такого нет.

GLORY если выразишь желание посматреть мои код буду очень признателен
Т.е. только посмотреть ? Да же комментировать не надо будет ? Или как ? ;-)
...
Рейтинг: 0 / 0
27.08.2002, 14:00:54
    #32046181
balbes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знатоки помогите написать триггер
Добрые ЛЮДИ помогите ПОЖАЛЙУСТА
настоить кодовую страницу базы.

на сервере программка базу видит нормально и все надписи на руском, а на клиенской (сетевой) машине в базе в место русских надписей символы. Настройки на сервере и клиенской машине одинаковые.

Что можно сделать??!!....
...
Рейтинг: 0 / 0
27.08.2002, 14:11:03
    #32046187
Good
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знатоки помогите написать триггер
GLORY
Ладно не буду напрегать и так соидет
...
Рейтинг: 0 / 0
27.08.2002, 18:10:25
    #32046314
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знатоки помогите написать триггер
Да показывайте - не стесняйтесь.

ЗЫ
Т.е. только посмотреть ? Да же комментировать не надо будет ? Или как ? ;-)
Это я так шутить пробую
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Знатоки помогите написать триггер / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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