Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при создании триггера, Не могу понять причину 
V
    Опции темы
ilyuha
Дата 17.6.2009, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 10.7.2007

Репутация: нет
Всего: нет



Здрасте smile
В общем, имеются 3 таблицы:
1)
Код
CREATE TABLE tb_students
(
    cotractnum varchar(12)  NOT NULL ,
    bdate datetime  NULL ,
    enterdate datetime  NULL ,
    contact_id integer  NOT NULL ,
    id integer IDENTITY (1,1) ,
    first_name varchar(30)  NOT NULL ,
    last_name varchar(40)  NOT NULL ,
    patronymic varchar(30)  NULL ,
    IS_MALE binary  NULL ,
    IS_FEMALE binary  NULL ,
    group_id integer  NOT NULL 
)

2)
Код
CREATE TABLE tb_contacts
(
    adress varchar(60)  NULL ,
    home_phone varchar(12)  NULL ,
    mobile_phone varchar(12)  NULL ,
    email varchar(40)  NULL ,
    other_info varchar(300)  NULL ,
    contact_id integer IDENTITY (1,1) 
)

3)
Код
CREATE TABLE tb_groups
(
    group_name varchar(6)  NOT NULL ,
    faculty_name varchar(40)  NULL ,
    group_id integer IDENTITY (1,1) 
)

и, объединяющая их, вьюха:
Код
CREATE VIEW students_vw
AS
SELECT s.first_name,s.last_name,s.patronymic,s.cotractnum,s.bdate,s.enterdate,s.IS_MALE,
s.IS_FEMALE,c.adress,c.home_phone,c.mobile_phone,c.other_info,c.email,g.group_name,g.faculty_name
    FROM tb_students AS s
INNER JOIN tb_contacts AS c
    ON s.contact_id=c.contact_id
INNER JOIN tb_groups AS g
    ON s.group_id=g.group_id

И пытаюсь создать триггер, дабы организовать вставку записей в эти таблицы ччерез представление:
Код
CREATE TRIGGER IO_Ins_Trig_students_vw ON students_vw
INSTEAD OF INSERT
AS
BEGIN
SET NOCOUNT ON
INSERT INTO dbo.tb_contacts
    SELECT i.adress,i.home_phone,i.mobile_phone,i.email,i.other_info
        FROM inserted AS i
IF(NOT EXISTS(SELECT g.group_id FROM tb_groups AS g, inserted AS i
                WHERE g.group_name=i.group_name))
    INSERT INTO tb_groups
        SELECT i.group_name,i.faculty_name FROM inserted AS i
INSERT INTO dbo.tb_students(first_name,last_name,patronymic,contractnum,
                        bdate,enterate,IS_MALE,IS_FEMALE)
    SELECT i.first_name,i.last_name,i.patronymic,i.contractnum,i.bdate,
            i.enterate,i.IS_MALE,i.IS_FEMALE FROM inserted AS i
END

На что, в ответ, SQL Server 2005 грязно материться: 
Цитата
Msg 207, Level 16, State 1, Procedure IO_Ins_Trig_students_vw, Line 15
Invalid column name 'contractnum'.
Msg 207, Level 16, State 1, Procedure IO_Ins_Trig_students_vw, Line 16
Invalid column name 'enterate'.
Msg 207, Level 16, State 1, Procedure IO_Ins_Trig_students_vw, Line 13
Invalid column name 'contractnum'.
Msg 207, Level 16, State 1, Procedure IO_Ins_Trig_students_vw, Line 14
Invalid column name 'enterate'.

Чем меня, откровенно говоря, ставит в тупик...  smile 

Помогите плиз... Никак не пойму, чем ему не нравятся именно эти поля? smile 
PM MAIL   Вверх
Akina
Дата 17.6.2009, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



Сравни имена полей во вьюхе и в триггере. ПОСИМВОЛЬНО!!!


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ilyuha
Дата 17.6.2009, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 10.7.2007

Репутация: нет
Всего: нет



Akina,  smile Спасибо... Блин, стыдно  smile Думал, что тут, что-то серьезное, а все из-за банальной невнимательности...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.0498 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.