2016-03-22 6 views
0

У меня есть две таблицы. Когда я вставляю новое значение для столбца spesific, я хочу обновить другой столбец во второй таблице. Как я могу это сделать?Вставить триггер для отдельной колонки

Вот простой пример, но он дает «Неправильный синтаксис рядом с ключевым словом« Вставить ».» как ожидалось.

Create trigger trigger_Insert_Months 
on [Quantities] 
after Insert 
As 
if Insert([Work Name]) 
begin 
    declare @NewWorkName varchar(200) 
    select @NewWorkName = [Work Name] from inserted 
    insert into [April]([Work Name]) 
    values (@NewWorkName) 
End 

ответ

0

Попробуйте:

CREATE TRIGGER trigger_Insert_Months 
ON [Quantities] 
AFTER INSERT 
AS 
BEGIN 
    INSERT INTO [April]([Work Name]) 
    SELECT [Work Name] from inserted 
    WHERE NOT EXISTS (SELECT 1 FROM [Quantities] WHERE [Quantities].[Work Name] = INSERTED.[Work Name] AND INSERTED.PrimaryKey != [Quantities].[PrimaryKey]) 
End 
+0

Msg 4104, уровень 16, состояние 1, процедура trigger_Insert_Months, строка 43 Идентификатор нескольких частей «ВСТАВИТЬ .Work Name "не может быть привязана. Msg 4104, уровень 16, состояние 1, процедура trigger_Insert_Months, строка 43 Идентификатор с несколькими частями «INSERTED.PrimaryKey» не может быть связан. Msg 207, уровень 16, состояние 1, процедура trigger_Insert_Months, строка 43 Недопустимое имя столбца 'PrimaryKey'. – Macukadam

+0

Можете ли вы показать свои определения таблиц для «Количества» и «Апрель». Под «PrimaryKey» я имел в виду, что вам придется заменить это на имя столбца первичного ключа в таблице «Количества». – AKS

+0

Мне это очень понравилось! – Macukadam

0

Поправьте меня, если я ошибаюсь. Вы хотите вставить значения в таблицу1 и обновить значения в таблице2 с вставленными значениями.

create trigger tr1 on Table1 
for insert 
as 
begin 
if exists (select 1 from inserted) 
begin 
update a 
set a.col1 = b.col 
from table2 as a 
inner join (select * from inserted) as b 
on a.id = b.id 
end 
end 

Этот код активирует триггер, когда вставка происходит в Table1 и обновлений Значения table2 из col1 с насаженными рядами. Изменить столбец ID с колонки, имеющей первичный ключ в table2 и table1 и col1 с колонной быть обновлена ​​в table2

Смежные вопросы