|
Создание ограничения. Курсовая работа.
|
|||
---|---|---|---|
#18+
Привет, друзья! Имеется простенькая база гостиницы "Hotel". Одной из таблиц является таблица "Booking"(бронирование) в которой есть поля "IdBooking" - первичный ключ, "IdClient" - идентификатор клиента, берется из таблицы "Client", "RoomNumber" - номер комнаты, "CheckInDate" - дата заселения в номер, "CheckOutDate" - дата выселения, "BookingPrice" - итоговая цена номера. Необходимо в таблице "Booking" реализовать ограничение через скалярную функцию чтобы нельзя было бронировать номер на те даты, на которые он уже забронирован. Много раз пытался изменить функцию, но каждый раз приводит к одной и той же ошибке связанной с "inserted". Версия ПО: Microsoft SQL Server 2019 (RTM-GDR) (KB4583458) - 15.0.2080.9 (X64) Nov 6 2020 16:50:01 Copyright (C) 2019 Microsoft Corporation Express Edition (64-bit) on Windows 10 Home 10.0 <X64> (Build 19042: ) Сама таблица "Booking": Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Данные в таблице: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Скалярная функция через которую пытался реализовать ограничение: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Ошибка: Msg 208, Level 16, State 1, Line 17 Недопустимое имя объекта "inserted". ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2021, 17:22 |
|
Создание ограничения. Курсовая работа.
|
|||
---|---|---|---|
#18+
Grufl Ошибка: Msg 208, Level 16, State 1, Line 17 Недопустимое имя объекта "inserted". таблицы inserted & deleted существуют только в контексте триггеров https://dotnettutorials.net/lesson/magic-tables-in-sql-server/Inserted and Deleted tables are temporary tables that are created by SQL Server in the context of a trigger. That means these two tables can only be available as part of a trigger. If you try to access these tables outside of a trigger, then you will get an error. https://docs.microsoft.com/en-us/sql/relational-databases/triggers/use-the-inserted-and-deleted-tables ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2021, 17:31 |
|
Создание ограничения. Курсовая работа.
|
|||
---|---|---|---|
#18+
komrad, Спасибо! Профан в sql, не знал этого. Буду очень признателен, если поможете с функцией или направите в нужное русло, поскольку без inserted не имею понятия как это реализовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2021, 17:36 |
|
Создание ограничения. Курсовая работа.
|
|||
---|---|---|---|
#18+
Grufl, во второй приведенной ссылке есть пример использования inserted таблиц при проверке бизнес-логики. "An Example of Using the inserted Table in a Trigger to Enforce Business Rules" ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2021, 17:42 |
|
Создание ограничения. Курсовая работа.
|
|||
---|---|---|---|
#18+
komrad, Проблема в том, что по заданию ограничение необходимо задать с помощь скалярной функции, а не триггера. К сожалению, это обязательное условие курсовой работы. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2021, 17:47 |
|
Создание ограничения. Курсовая работа.
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2021, 18:01 |
|
Создание ограничения. Курсовая работа.
|
|||
---|---|---|---|
#18+
Grufl, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2021, 18:10 |
|
Создание ограничения. Курсовая работа.
|
|||
---|---|---|---|
#18+
komrad таблицы inserted & deleted существуют только в контексте триггеров ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2021, 18:13 |
|
|
start [/forum/topic.php?fid=46&msg=40037237&tid=1685192]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
183ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 279ms |
0 / 0 |