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

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

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

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



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

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

Не получается
...
Рейтинг: 0 / 0
Знатоки помогите написать триггер
    #32046114
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Текст - в студию !
...
Рейтинг: 0 / 0
Знатоки помогите написать триггер
    #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
Знатоки помогите написать триггер
    #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
Знатоки помогите написать триггер
    #32046133
Good
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SYSTEM_USER - SA .а мне надо имя которыи сделал изменение.Что делать если все подключаются с SA
...
Рейтинг: 0 / 0
Знатоки помогите написать триггер
    #32046135
Фотография MichaelGK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А HOST_NAME ( ) подойдет? Будешь знать с какого ПК сделано изменение, напряжешь хозяина.
...
Рейтинг: 0 / 0
Знатоки помогите написать триггер
    #32046138
Фотография AndreK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что делать если все подключаются с SA
Руки оторвать хозяину и развести клиентов именами и паролями.
...
Рейтинг: 0 / 0
Знатоки помогите написать триггер
    #32046146
Good
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все работает в лучем виде . Спасибо всем а особенно GLORY

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

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

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

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

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

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

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

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

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

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


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