Нужна помощь в добавлении ограничения для проверки значений в таблицах в SQL Server 2000 - PullRequest
0 голосов
/ 15 июля 2011

У меня есть две таблицы, и я хочу использовать базу данных для наложения на них ограничений.

Таблица A имеет отношение один ко многим с таблицей B, то есть многие строки таблицы B принадлежат ровно одной строке таблицы A. В таблице B есть столбец первичного ключа таблицы A, к которому он принадлежит. В любом случае, я хочу добавить столбец как в таблицу A, так и в таблицу B, где его значение в записи таблицы A должно равняться значению в соответствующих записях таблицы B.

Я хочу сказать SQL Server 2000, чтобы он запрещал обновления или добавления записей таблицы B, если значения в дочерних столбцах не совпадают. Как я могу это сделать? Я попытался использовать проверочное ограничение, но он не любит подзапросы. Придется ли мне рисковать в мир триггеров? Есть ли другой способ?

Любая помощь будет оценена.

Спасибо

Isaac

1 Ответ

1 голос
/ 15 июля 2011

То, что вы пытаетесь сделать, звучит как связь с внешним ключом - но у вас, похоже, уже есть это ( Таблица B содержит столбец первичного ключа таблицы A ).

Я не думаю, что вы можете определить такое ограничение - CHECK ограничения не могут охватывать таблицы, насколько я знаю. Таким образом, в конце вам, вероятно, потребуется использовать триггеры вместо обеих таблиц для достижения этой цели.

...