Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Триггер на вставку / 7 сообщений из 7, страница 1 из 1
25.10.2002, 15:58:44
    #32061995
Eduard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер на вставку
Добрый день еще раз !

Я полностью разобрался с Active Directory, большое вам спасибо, но у меня возник новый вопрос, с которым я уже целый день мучаюсь.
Значит, существует определенная таблица с определенным количеством полей, и программа (ISA server) периодически складывает туда данные. Я добавил в эту таблицу еще одно поле, и теперь мне необходимо написать триггер, который, основываясь на данных INSERTED, записывал в созданное мной поле определенное значение, основываясь на одном из значений из INSERTED. Пишу что-то в духе :

CREATE TRIGGER InsertAccountName ON [dbo].[WebProxyLog]
FOR INSERT
AS
DECLARE @AccountName nvarchar(50), @ClientUserName nvarchar(50)
SET @ClientUserName=(SELECT ClientUserName FROM inserted)
SET @AccountName = (SELECT AccountName FROM AllUsers WHERE ClientUserName=@ClientUserName)
INSERT INTO WebProxyLog(AccountName)
VALUES (ISNULL(@AccountName , 'Чертов anonymous !!!'))

Ничего не получается, в поле AccountName остается NULL
...
Рейтинг: 0 / 0
25.10.2002, 16:10:04
    #32062004
Kilroy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер на вставку
Надо добавить в таблицу уникальный ключ строки
и в триггере связывать inserted и WebProxyLog

update WebProxyLog
set w.AccountName = (ISNULL(@AccountName , 'Чертов anonymous !!!'))
from WebProxyLog w join inserted i on w.key = i.key
где key - ключевой столбец
...
Рейтинг: 0 / 0
25.10.2002, 16:17:07
    #32062009
Eduard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер на вставку
Недопонял. Мне необходимо еще поле IDENTITY добавить ? Но ведь ISA понятия не имеет о том, что в таблицу, куда он данные сует, существует этот Identity. Таким образом, INSERTED.KEY будет указывать непонятно на что, как мне кажется. Или сделать ключевым одно из существующих полей ? Или я совсем ни черта не понимаю ?
...
Рейтинг: 0 / 0
25.10.2002, 16:27:18
    #32062017
Kilroy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер на вставку
Я не знаю формат этой таблицы, нужно найти или добавить ключ.
В общем смысл в том,что по данным в строке из таблицы inserted
нужно найти соответствующую вставленную строку и проапдейтить ее.
...
Рейтинг: 0 / 0
25.10.2002, 17:17:44
    #32062029
Genady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер на вставку
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE TRIGGER InsertAccountName ON [dbo].[WebProxyLog] 
FOR INSERT 
AS 
INSERT INTO WebProxyLog(AccountName)
select  ISNULL(au.AccountName , 'Чертов anonymous !!!')
from inserted ins
left outer join AllUsers au on ins.ClientUserName = au.ClientUserName
...
Рейтинг: 0 / 0
25.10.2002, 21:22:12
    #32062090
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер на вставку
добавь в таблицу в котору пишет isa в конец поле identity....
я с иской не работал, но думаю что у него похожая схема
с iis... покопайся в настройках... там гдето есть скрипт создания таблички....
...
Рейтинг: 0 / 0
26.10.2002, 07:38:04
    #32062114
Genady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер на вставку
Здесь прозвучало много советов, в том числе и советы создать ключ, но на слона то никто внимания и не обратил.

2 Eduard

Во первых Вы написали триггер для обработки одной строки, в то время как сервер обрабатывает inserted как таблицу, так что если будет вставлено несколько записей он отработает по одной из них. Сравните с моим вариантом триггера.
Во вторых естесвенно, что в таблице должен быть ключ, я просто предположил, что в Вашем случае используется естественный ключ.
В третих проверка isnull может не срабатывать из-за того, что клиент, как я понимаю у Вас это IIS, передает не Null, а что то другое, например пустую строку.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Триггер на вставку / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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