Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / вопрос по триггеру / 9 сообщений из 9, страница 1 из 1
17.07.2019, 12:59
    #39838277
-SWAN-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по триггеру
Здравствуйте, о ГУРУ MSSQL!)
Подскажите, пожалуйста!
Не понимаю как работает такой триггер:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
ALTER TRIGGER [dbo].[trOperation_U] ON  [dbo].[Operation]
   FOR update
AS 
BEGIN
	SET NOCOUNT ON;
	insert into V_audit_operation
	select i.*,'U' from inserted i

END



Каким-то образом в представление V_audit_operation в последний столбец попадает значение 'U'
насколько я понимаю в i.* перечисляются все столбы, а потом идёт ,'U" - как триггер понимает, что это надо записать в последний столбец?
Спасибо!
...
Рейтинг: 0 / 0
17.07.2019, 13:31
    #39838286
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по триггеру
-SWAN-,

insert ... select ..., читайте справку по insert. Триггер выполняет команды, он ничего не понимает.
...
Рейтинг: 0 / 0
17.07.2019, 13:59
    #39838300
-SWAN-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по триггеру
подскажите, пожалуйста, какие столбцы попадают в inserted? все, которые есть в таблице [dbo].[Operation]? - я правильно понимаю?
-
...
Рейтинг: 0 / 0
17.07.2019, 14:05
    #39838310
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по триггеру
-SWAN-,

Учитесь всегда перечислять колонки, жизнь станет намного проще
...
Рейтинг: 0 / 0
17.07.2019, 14:11
    #39838312
-SWAN-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по триггеру
TaPaK-SWAN-,

Учитесь всегда перечислять колонки, жизнь станет намного проще

Дело в том, что не я это сварганил. Для меня это новая БД, поэтому и спрашиваю, как работает такая конструкция:
Код: sql
1.
2.
insert into V_audit_operation
	select i.*,'U' from inserted i



действительно ли при таком варианте значение 'U' заносится в последний имеющийся столбец?
...
Рейтинг: 0 / 0
17.07.2019, 14:55
    #39838337
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по триггеру
-SWAN-,

В последний, т.к. столбцы не перечислены.
...
Рейтинг: 0 / 0
17.07.2019, 15:27
    #39838357
-SWAN-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по триггеру
Владислав Колосов-SWAN-,

В последний, т.к. столбцы не перечислены.

Я понял, спасибо!
...
Рейтинг: 0 / 0
17.07.2019, 15:56
    #39838374
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по триггеру
Владислав Колосов-SWAN-,

В последний, т.к. столбцы не перечислены.Столбцы в SELECTе перечислены - все из таблицы [dbo].[Operation] (в некотором негарантированном порядке), а напоследок - столбец со значением 'U'.
Чтобы они соответствовали полям первой таблицы view V_audit_operation,
надо перечислить все эти поля после имени V_audit_operation в скобках и в SELECTе вместо звёздочки.
...
Рейтинг: 0 / 0
17.07.2019, 22:42
    #39838496
Gerros
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по триггеру
Код: sql
1.
select top 10 i.*, 'U' from [dbo].[Operation] i
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / вопрос по триггеру / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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