Форум: "Базы";
Текущий архив: 2003.01.09;
Скачать: [xml.tar.bz2];
Внизкак организовать ссылочную целостность между таблицами Найти похожие ветки
← →
Андрей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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c