Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 вопрос по триггеру  [new]
-SWAN-
Member

Откуда: Оделся, обулся - и на работу вернулся!)
Сообщений: 207
Здравствуйте, о ГУРУ MSSQL!)
Подскажите, пожалуйста!
Не понимаю как работает такой триггер:
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" - как триггер понимает, что это надо записать в последний столбец?
Спасибо!
17 июл 19, 12:59    [21928487]     Ответить | Цитировать Сообщить модератору
 Re: вопрос по триггеру  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7399
-SWAN-,

insert ... select ..., читайте справку по insert. Триггер выполняет команды, он ничего не понимает.
17 июл 19, 13:31    [21928521]     Ответить | Цитировать Сообщить модератору
 Re: вопрос по триггеру  [new]
-SWAN-
Member

Откуда: Оделся, обулся - и на работу вернулся!)
Сообщений: 207
подскажите, пожалуйста, какие столбцы попадают в inserted? все, которые есть в таблице [dbo].[Operation]? - я правильно понимаю?
-
17 июл 19, 13:59    [21928556]     Ответить | Цитировать Сообщить модератору
 Re: вопрос по триггеру  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
-SWAN-,

Учитесь всегда перечислять колонки, жизнь станет намного проще
17 июл 19, 14:05    [21928568]     Ответить | Цитировать Сообщить модератору
 Re: вопрос по триггеру  [new]
-SWAN-
Member

Откуда: Оделся, обулся - и на работу вернулся!)
Сообщений: 207
TaPaK
-SWAN-,

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


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


действительно ли при таком варианте значение 'U' заносится в последний имеющийся столбец?
17 июл 19, 14:11    [21928575]     Ответить | Цитировать Сообщить модератору
 Re: вопрос по триггеру  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7399
-SWAN-,

В последний, т.к. столбцы не перечислены.
17 июл 19, 14:55    [21928644]     Ответить | Цитировать Сообщить модератору
 Re: вопрос по триггеру  [new]
-SWAN-
Member

Откуда: Оделся, обулся - и на работу вернулся!)
Сообщений: 207
Владислав Колосов
-SWAN-,

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


Я понял, спасибо!
17 июл 19, 15:27    [21928687]     Ответить | Цитировать Сообщить модератору
 Re: вопрос по триггеру  [new]
iap
Member

Откуда: Москва
Сообщений: 46953
Владислав Колосов
-SWAN-,

В последний, т.к. столбцы не перечислены.
Столбцы в SELECTе перечислены - все из таблицы [dbo].[Operation] (в некотором негарантированном порядке), а напоследок - столбец со значением 'U'.
Чтобы они соответствовали полям первой таблицы view V_audit_operation,
надо перечислить все эти поля после имени V_audit_operation в скобках и в SELECTе вместо звёздочки.
17 июл 19, 15:56    [21928710]     Ответить | Цитировать Сообщить модератору
 Re: вопрос по триггеру  [new]
Gerros
Member

Откуда: Харьков
Сообщений: 501
select top 10 i.*, 'U' from [dbo].[Operation] i
17 июл 19, 22:42    [21928960]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить