Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2014, 01:10   #1
Leet
Пользователь
 
Регистрация: 21.04.2011
Сообщений: 13
По умолчанию Подскажите про триггер(MySQL Server 2012)

Вот такой простой триггер

Код:
ALTER TRIGGER dbo.NewTRigger1 ON dbo.Основная

AFTER INSERT

AS 

DECLARE @ID int

BEGIN

set @ID=NEW.ID;

END
ругается на NEW.ID, столбец ID в таблице dbo.Основная существует и его тип int

Не удалось привязать составной идентификатор "NEW.ID".

Последний раз редактировалось Leet; 16.10.2014 в 11:24.
Leet вне форума Ответить с цитированием
Старый 16.10.2014, 07:26   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А зачем тут select? Или я чего-то не понимаю?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.10.2014, 11:24   #3
Leet
Пользователь
 
Регистрация: 21.04.2011
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А зачем тут select? Или я чего-то не понимаю?
Извиняюсь у меня там set.
Leet вне форума Ответить с цитированием
Старый 16.10.2014, 12:36   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Насколько я понимаю NEW.ID это получатель а не источник.Т.е. ему нужно что-то присваивать а не брать из него.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.10.2014, 12:56   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

FOR EACH ROW не надо что ли?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 16.10.2014, 19:22   #6
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Во-первых, не MySQL SERVER 2012 а MS SQL SERVER 2012.
Во-вторых, такие вещи надо узнавать в книгах/мануалах, т.к. основы синтаксиса это минимум, и с проблемами по ним надо обращаться не на форумы, а во всё те же книги.
В-третьих, если бы Вы почитали указанное выше, то знали бы, что в триггере используются специальные таблицы INSERTED и DELETED , а NEW это нераспознаваемый в данном случае идентификатор.

Пример триггера (вытащил у себя и обрезал)
Код:
CREATE TRIGGER AlterJobRole
ON Office.Jobs
FOR INSERT, UPDATE, DELETE 
AS
BEGIN
    DECLARE @JobNameDel nvarchar(32), @JobNameIns nvarchar(32)
    SELECT TOP 1 @JobNameIns = Name FROM INSERTED
    SELECT TOP 1 @JobNameDel = Name FROM DELETED	
    -- делаем чего-нибудь с @JobNameIns и @JobNameDel
END
GO
Ну а
Код:
AS 
DECLARE @ID int
BEGIN
это эпик.
Запомните, если есть некий блок кода то он либо состоит из одного оператора, либо из группы операторов, обрамлённых операторными скобками, и так практически в любом языке.
И правильно надо писать
Код:
AS 
BEGIN 
/*группа операторов*/ 
END

Последний раз редактировалось phomm; 16.10.2014 в 19:32.
phomm вне форума Ответить с цитированием
Старый 16.10.2014, 19:53   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
не MySQL SERVER 2012 а MS SQL SERVER 2012
А, у ТС смесь бульдога с носорогом
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Необходимо написать триггер удаления для MS SQL Server averardo SQL, базы данных 7 05.06.2013 08:50
Триггер в SQL Server 2005 Кристина * SQL, базы данных 2 15.05.2013 19:05
MS SQL Server: универсальный Logger сделанный как триггер Glen SQL, базы данных 8 11.03.2013 13:59
Триггер на mysql Ramza Фриланс 1 21.05.2012 18:04
Триггер в MySQL nadan Помощь студентам 0 11.06.2011 22:04