Sybase поддерживает внешние ключи и первичные ключи как через такие процедуры, как sp_primarykey
и sp_foreignkey
, так и через декларативные ограничения SQL. То, что вы хотите сделать, это именно то, что должен делать внешний ключ из [account], на который ссылается [student].
Руководство пользователя Sybase SQL (Adaptive Server 15, если оно имеет значение) иллюстрирует триггер «ограниченное удаление» (с несколько иным отступом):
create trigger deltitle
on titles
for delete
as
if (select count(*)
from deleted, salesdetail
where salesdetail.title_id =
deleted.title_id) > 0
begin
rollback transaction
print "You cannot delete a title with sales."
end
Я не уверен, что откат - это хорошая идея; исключение, вероятно, лучше.
Обозначения, которые вы пытаетесь использовать, более близки к стандарту SQL, чем документированные обозначения, поддерживаемые Sybase.