powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Тригер на удаление (универсальный?)
9 сообщений из 9, страница 1 из 1
Тригер на удаление (универсальный?)
    #32027666
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос касается не столько собственно скрипта, сколько стиля написания.

Итак, стандартное условие для тригера на удаление одной записи из таблицы справочника: Запрет на удаление если на данную запись есть ссылка из другой таблицы.

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

Проблема в том, что база данных еще находится в стадии разработки. Т.е. могут добавлятся (удалятся) новые таблицы. И что, каждый раз править кучу кода? Может быть имеет смысл написать некоторую универсальную хранимую процедуру которую и вызывать из тригера?


И еще один вопрос, тоже по стилю.

Имеет ли смысл передавать значение в выходные параметры хранимых процедур. Или стоит жестко придерживаться правила - если OUTPUT, то этот параметр только возвращает (но не принимает) значение.
...
Рейтинг: 0 / 0
Тригер на удаление (универсальный?)
    #32027683
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для SQL2000 есть каскадные обновления/удаления.

В SQL7, если вы взялись организовывать ссылочную целостность на триггерах, то выигрышей от использования универсальной процедуры я не вижу, поскольку для универсализации придется создать какие дополнительные таблицы, хранящие те же связи PK-FK и вместо "кучи кода" придется следить за "кучей записей" на предмет их актуальности. Не думаю, что облегчит вам жизнь.
...
Рейтинг: 0 / 0
Тригер на удаление (универсальный?)
    #32027696
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Glory

У меня SQL7. Там что, можно установить (снять) связь PK-FK только через диаграммы? Других способов нет? Если бы ты не упомянул про эту связь я бы вообще про нее не вспомнил. Так бы и писал тригера.


И как ты работаешь с параметрами OUTPUT ? Только на выдачу или и на прием тоже?
...
Рейтинг: 0 / 0
Тригер на удаление (универсальный?)
    #32027715
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да нет, не только через диаграммы. В EM в режиме дизайна таблицы, а также через команды DDL.


Использование параметров IMHO дело вкуса. По мне так проще помнить, что параметр только выходной, чем помнить(и возможно проверять в коде) что через него могут передаваться какие-то значения. тобишь я за - "разделяй и властвуй"

IMHO логичнее для процедур в проектах, где твой код будут использовать другие разработчики, совершенно четко поределить: вот входные параметры, вот выходные, вот код завершения, т.е. in/out/return
...
Рейтинг: 0 / 0
Тригер на удаление (универсальный?)
    #32027716
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поскольку разработка находится в начальной стадии, IMHO наилучшее решение - перейти на SQL2K и использовать PK-FK связи с поддержкой каскадных операций. За одно получите множество других приятных удобств вроде UDF, sql_variant.
...
Рейтинг: 0 / 0
Тригер на удаление (универсальный?)
    #32027717
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В ЕМ я выхожу на закладку RelationShips, но не могу создать новую связь. Не понятно куда тыкаться.

А по поводу SQL2K вопрос упирается в деньги и психологию руководства. SQL7 уже есть, причем лицензионный, а SQL2K еще покупать надо
...
Рейтинг: 0 / 0
Тригер на удаление (универсальный?)
    #32027734
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BOL - Using the SQL Server Tools - User Interface Reference - Visual Database Tools - Developing Database Structure - Working with Relationships - Creating a Relationship Between Tables
...
Рейтинг: 0 / 0
Тригер на удаление (универсальный?)
    #32027753
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не удастся протянуть связь между таблицами, у которых нет PK.
...
Рейтинг: 0 / 0
Тригер на удаление (универсальный?)
    #32027835
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Glory

У меня MS SQL7 и в его BOL нет таких пунктов. Все что я нашел в BOL относительно установок связи касается либо диаграммы, либо прямых команд с непонятными (для меня) объектами типа InterfaceDef

2 Garay

Это понятно. И вопросов по созданию PK у меня нет. Все очевидно. Непонятно как ВИЗУАЛЬНО создавать FK и настраивать связь кроме как через диаграммы.

Но, все-равно. Всем спасибо. Да и диаграммы - вещь полезная. Так что буду через них строить связи.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Тригер на удаление (универсальный?)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]