Главная страница
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.014 c
1-24851
Gerda
2002-12-26 23:03
2003.01.09
Ресурсы


1-24831
shane54
2002-12-26 20:48
2003.01.09
Вопрос по StringGrid


4-25145
delphi5.01
2002-11-16 12:25
2003.01.09
дескрипор меню пуск


14-25064
NewGuest
2002-12-17 18:11
2003.01.09
Народ...!!! Посоветуйте PLZ!!


1-24829
dRake
2002-12-27 11:59
2003.01.09
обнуление массива