Как проверить значение из более старой таблицы

61
6

У меня есть таблица:

create table Authorized(
diver_number int not null,
level_name char(30) not null,
constraint PK_Authorized primary key (diver_number, level_name),
Constraint FK_diver_number1 foreign key (diver_number) references Diver(diver_number)
on update cascade on delete cascade,
Constraint FK_level_name foreign key (level_name) references Level(name)on update
cascade on delete cascade,
club_number int Constraint FK_club_number foreign key (club_number) references DivingClub(number)
on update cascade on delete cascade not null,
authorization_date date not null,
picture image)

И могу:

create table Works_for(
diver_number int not null,
club_number int not null,
constraint PK_Works_for primary key (diver_number, club_number),
Constraint FK_diver_number2 foreign key (diver_number) references Diver(diver_number)
on update cascade on delete cascade ,
Constraint FK_club_number2 foreign key (club_number) references DivingClub (number)on update
cascade on delete cascade,
start_working_date date not null,
end_working_date date)

Когда я добавляю diver_number в таблицу Works_for, я хочу проверить, является ли этот дайвер "Руководством" (имя_уровня в Авторизованной таблице). Как я могу это проверить?

спросил(а) 2021-01-19T15:16:38+03:00 2 месяца, 3 недели назад
1
Решение
97

Я бы подумал, что ваша скалярная функция будет больше похожа на это.

CREATE FUNCTION dbo.checkADate(@diver_number int) RETURNS BIT AS 
BEGIN
declare @Found bit

select @Found = count(*)
from Authorized
WHERE diver_number = @diver_number
and level_name = 'Guide'

return @Found

END

ответил(а) 2021-01-19T15:16:38+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема