powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Создание скалярной функции и ограничения. HELP
3 сообщений из 3, страница 1 из 1
Создание скалярной функции и ограничения. HELP
    #40030605
Arangutang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
P.S проблема почти такая же как и у Kote1ka. Но, тем не менее. (Да, мы одногруппники).
Есть БД Hire(Прокат сноубордов) в которой есть таблица Rental(Таблица проката, типо какое оборудование клиенты взяли, в какое время и так далее). Необходимо создать ограничение на прокат оборудования, который уже находится в указанный период в прокате, реализованное через скалярную функцию. В таблице Rental есть атрибуты (IdRental (Id Проката - ключевой атрбиут) , DateStart (Дата и время когда клиент взял в прокат оборудование), DateEnd ( Когда он отдаст оборудование), DatePay (Дата и время оплаты) , PriceRental (Цена). Далее внешние ключи в той же таблице: IdEmployee (ID сотрудника), IdEquipment(ID экипировки. В таблице экипировки цена за экипировку на час, а в Rental общая, за несколько часов), IdClient(ID клиента, тоже ссылается на таблицу клиентов).
Ошибок нет, функция и ограничение создается, только вот толку никакого.
Забыл код ограничения:
ALTER TABLE dbo.Rental
ADD CONSTRAINT CHECK_HIRE
CHECK (dbo.CHECK_HIRE_CONSTRAINT(IdEquipment, DateStart, DateEnd) = 0);
Сижу уже неделю перепробовал абсолютно все. В sql и бд новичок.
...
Рейтинг: 0 / 0
Создание скалярной функции и ограничения. HELP
    #40030632
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На момент проверки ограничения добавленные строки уже есть в таблице.
Поэтому примерно так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
create function Check_Hire_Constraint
(
 @IdRental int,
 @idEquip int,
 @dateS datetime,
 @dateE datetime
)
returns int
as
begin
 if exists(select 1 from dbo.Renatal where IdRental <> @IdRental and IdEquipment = @idEquip and @dateS <= DateEnd and @dateE >= DateStart)
  return 1
 else
  return 0
end;
...
Рейтинг: 0 / 0
Создание скалярной функции и ограничения. HELP
    #40030656
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: Лекции вместе с вашим дружбаном Kote1ka прогуливать не надо было.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Создание скалярной функции и ограничения. HELP
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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