Бесплатный вебинар
«как найти любимую работу»
Подарки на 150 000 ₽ за участие
Живой эфир
Записи не будет!
00:00:00:00
дн.ч.мин.сек.

Добавление составного первичного ключа в переменную таблицы SQL

Быстрый ответ

SQL
Скопировать код
DECLARE @TableVar TABLE (
    Col1 INT,
    Col2 INT,
    PRIMARY KEY (Col1, Col2)
);

INSERT INTO @TableVar VALUES (1, 2);

В коде используется переменная таблицы @TableVar с составным первичным ключом, который включает в себя Col1 и Col2. Ограничение PRIMARY KEY обеспечивает, что каждая пара значений в указанных колонках будет уникальной. С помощью команды INSERT мы добавляем данные, при этом предотвращается появление дубликатов данных в рассматриваемых колонках.

Кинга Идем в IT: пошаговый план для смены профессии

Особенности работы с составными ключами

Составной ключ — отличный инструмент для обеспечения уникальности значений и сохранения целостности данных. Использование нескольких полей в PRIMARY KEY позволяет фиксировать уникальные комбинации их значений, что особенно актуально в случаях, когда отдельные поля не имеют уникальности по своей природе.

Заполнение переменной таблицы

SQL
Скопировать код
DECLARE @statistictemp TABLE (
    MajorName VARCHAR(100),
    SubName VARCHAR(100),
    DetailedName VARCHAR(100),
    UniversityID INT,
    StatisticValue DECIMAL(10, 2),
    PRIMARY KEY (MajorName, SubName, DetailedName, UniversityID)
);

При попытке вставить дубликаты в @statistictemp, SQL Server незамедлительно выдаст ошибку, строго обеспечивая соблюдение уникальности данных, заложенной в первичном ключе:

SQL
Скопировать код
-- Первое внесение данных пройдет успешно
INSERT INTO @statistictemp VALUES ('Science', 'Biology', 'Genetics', 1, 75.5);

-- Второе вызовет ошибку из-за нарушения уникальности
INSERT INTO @statistictemp VALUES ('Science', 'Biology', 'Genetics', 1, 80.0);

Важно отметить, что изменить или отменить ограничения переменной после её инициализации невозможно. Поэтому ключи следует определить на этапе создания переменной.

Подробнее об этом расскажет наш спикер на видео
skypro youtube speaker

Тестируйте, ведь целостность данных – это не шутки!

Не забывайте о важности тестирования ограничений, так как непредвиденные ошибки исполнения могут стать настоящей проблемой для ваших приложений. Ошибки также могут показать, где были нарушены ограничения на данные.

Визуализация — для лучшего запоминания 📌

Составной первичный ключ в SQL напоминает основу здания — оба создают прочное основание:

Markdown
Скопировать код
| Кирпич 1 (🧱)      | Кирпич 2 (🧱)        | Надежный фундамент (🏗️) |
| ------------------- | -------------------- | ------------------------ |
| Колонка A (🔑)      | Колонка B (🔑)        | Составной ключ (🔐)      |

Каждая колонка, как отдельный кирпич, важна в сочетании с другими, ведь именно они обеспечивают надежность первичного ключа.

Вне основных сценариев: Расширенные типы таблиц

Переменные таблиц, подобно велосипедам, идеальны для «небольших поездок», когда работа идет с небольшим объемом быстроизменяющихся данных. Но для обработки больших массивов данных и сложных запросов SQL Server предлагает аналоги «седанов» и «грузовиков» — временные и постоянные таблицы с поддержкой индексов и ограничений. Выбор зависит от объема данных, требований к производительности и использования транзакционного журнала.

'Когда' это важно: Для чего нужен составной ключ?

  • В отношениях многие-ко-многим составной ключ регулирует ассоциации между сущностями.

  • Для временных рядов уникальность достигается за счет временной отметки в сочетании с идентификаторами.

  • Геоспациальные данные требуют использования широты и долготы для четкого определения местоположения.

Замечание: Используйте с умом

Составные ключи удобны, но могут замедлить производительность из-за более сложного процесса поддержки индексов. В некоторых ситуациях целесообразнее использовать одноколоночный суррогатный ключ вместо составного.

Полезные материалы

  1. CREATE TABLE (Transact-SQL) – SQL Server | Microsoft Learn: Официальное руководство Microsoft по использованию переменных таблиц.

  2. Primary and Foreign Key Constraints – SQL Server | Microsoft Learn: Подробное изучение природы первичных и внешних ключей.

  3. Temporary Tables in SQL Server – Simple Talk: Обстоятельный обзор временных таблиц и их влияния на производительность.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей
Что такое составной первичный ключ в SQL?
1 / 5