Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.09;
Скачать: CL | DM;

Вниз

как организовать ссылочную целостность между таблицами   Найти похожие ветки 

 
Андрей1   (2002-12-16 18:07) [0]

Добрый вечер .
Имеются программа на Delphi 3 (Microsoft SQL Server 2000 , BDE)
в которой используются две таблицы
test - главная , detal - подчинённая
в таблице test поле id_num - первичный индекс ,
в таблице detal поле id_det - внешний ключ (ссылается на id_num в master таблице).
Необходимо при вставке записи в подчинённую таблицу заполнять поле id_det
значением из id_num master таблицы.
Попытался организовать ссылочную целостность между таблицами
с помощью триггера на detal таблицу

CREATE TRIGGER [t_detal] ON [dbo].[detal]
FOR INSERT, UPDATE
AS
Declare
@id_test bigint ,
@id_detal bigint

select @id_test = t.id_num
from test t
select @id_detal = d.id_det
from detal d , inserted i
where i.id_det = d.id_det
update detal
set id_det = @id_test

Проблема заключается в том ,что в поле id_det подчиненной таблицы
вставляется одно и тоже значение независимо от того какая запись
в master таблице является текущей.

Очень расчитываю на вашу помощь
С Уважением Андрей.


 
still ©   (2002-12-16 18:14) [1]

Нет такого понятия - текущая запись в SQLServer.
Это в TTable есть, а на сервере нет.
Т.е.

> select @id_test = t.id_num
> from test t

where t.id_num=???

иначе он тебе выбирает всю таблицу - и естественно всегда получишь первую запись.

т.е. это надо реализовывать не на сервере (уж точно, что не с пом. триггеров), а на клиенте.



Страницы: 1 вся ветка

Текущий архив: 2003.01.09;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
1-24961
sndanil
2002-12-26 19:05
2003.01.09
ListBox


4-25125
d_coder
2002-11-20 01:07
2003.01.09
Стиль а-ля Фотошоп !!!!!!!!!!!!!!!!!!!!!


14-25051
Johnmen
2002-12-20 12:13
2003.01.09
С праздником !


1-24886
sad
2002-12-25 15:38
2003.01.09
TeeChart и коэффициенты


4-25130
msts
2002-11-20 15:29
2003.01.09
Перехват вызова функции/внедрение кода