Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-24895
бред
2002-12-25 19:46
2003.01.09
новый компонент ошибку дает


7-25106
Diamond Dog
2002-10-29 19:29
2003.01.09
Информация о железе


3-24783
denick
2002-12-16 12:50
2003.01.09
Люд-д-и помогите!


3-24771
Jdrm
2002-12-13 10:54
2003.01.09
Настройка кодировки в базе данных


4-25150
Cosmic
2002-11-21 21:27
2003.01.09
Виснет GetWindowsText...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский