Главная страница
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.011 c
1-24904
jen_bond
2002-12-25 23:06
2003.01.09
Помгите советом!


14-25082
Артем
2002-12-20 17:19
2003.01.09
Написание сниффера


1-24954
Ser12
2002-12-25 14:29
2003.01.09
Люди, кто знает функцию, которая возвращает количество


14-25038
Гл.Приколист
2002-12-19 14:10
2003.01.09
:)) И нам тоже нужен приколист


1-24917
ScableR
2002-12-19 14:22
2003.01.09
Как Работа с RAR или ZIP`ом