powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SQL ограничения
6 сообщений из 6, страница 1 из 1
SQL ограничения
    #39907825
Anastasia99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно написать ограничение для строк "Название корпуса "Куда" и "Название корпуса "Откуда" так, чтобы значения были уникальные. из корп. А в корп. Б время перехода 10 мин и из корп. Б в корп. А тоже 10 мин
...
Рейтинг: 0 / 0
SQL ограничения
    #39907838
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anastasia99
Нужно написать ограничение для строк "Название корпуса "Куда" и "Название корпуса "Откуда" так, чтобы значения были уникальные. из корп. А в корп. Б время перехода 10 мин и из корп. Б в корп. А тоже 10 мин


Медитируйте на тему: Почему "идентификатор перехода", но "название корпуса"?

Может наступить просветление.
...
Рейтинг: 0 / 0
SQL ограничения
    #39907839
entrypoint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anastasia99,

Код: 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.
25.
26.
27.
28.
29.
DECLARE @t AS TABLE
                    ([Идентификатор перехода]    INT NOT NULL IDENTITY(1, 1) PRIMARY KEY CLUSTERED
                   , [Время перехода]            TIME NOT NULL
                   , [Название корпуса "Откуда"] VARCHAR(255) NOT NULL
                   , [Название корпуса "Куда"]   VARCHAR(255) NOT NULL
                   , UNIQUE([Название корпуса "Откуда"], [Название корпуса "Куда"])
                    );

INSERT INTO @t(
       [Время перехода]
     , [Название корпуса "Откуда"]
     , [Название корпуса "Куда"]
                                )
SELECT 
       '00:10:00'
     , 'Откуда'
     , 'Куда';

PRINT 'Всё хорошо, а затем ошибка'

INSERT INTO @t(
       [Время перехода]
     , [Название корпуса "Откуда"]
     , [Название корпуса "Куда"]
                                )
SELECT 
       '00:10:00'
     , 'Откуда'
     , 'Куда';
...
Рейтинг: 0 / 0
SQL ограничения
    #39907868
Anastasia99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
entrypoint,
А можно реализовать это через ограничение, а не через запрос?
...
Рейтинг: 0 / 0
SQL ограничения
    #39907885
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гораздо проще организовать ограничение, что [Название корпуса "Откуда"] лексикографически меньше (или, если не нравится, что больше), чем [Название корпуса "Куда"]. А на её основе сделать вьюшку, которая к имеющимся записям добавляет реверсные - и её использовать.

И триггеры, которые переставляют значения полей на вводе/корректировке, если вставляем не в том порядке.
...
Рейтинг: 0 / 0
SQL ограничения
    #39907895
entrypoint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anastasia99,
так вот

Код: sql
1.
      , UNIQUE([Название корпуса "Откуда"], [Название корпуса "Куда"])
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SQL ограничения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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