Удаление первичных ключей
применяется к: SQL Server 2016 (13.x) и более поздним версиям
базе данных SQL Azure
Управляемому экземпляру SQL Azure
базе данных SQL в Microsoft Fabric
Вы можете удалить первичный ключ в SQL Server с помощью SQL Server Management Studio или Transact-SQL.
При удалении первичного ключа удаляется и соответствующий индекс. Этот индекс может быть кластерным индексом таблицы, что превращает таблицу в кучу. Дополнительные сведения см. в кучах (таблицах без кластеризованных индексов). Большинство таблиц должны иметь кластеризованный индекс. Сведения о повторном создании первичного ключа см. в статье Создание первичных ключей.
Первичные ключи могут ссылаться на внешние ключи в другой таблице. Если на внешний ключ имеются ссылки, сначала необходимо удалить эти ссылки, а затем удалить первичный ключ. Дополнительные сведения см. в ограничениях первичного и внешнего ключа.
Разрешения
Требуется ALTER
разрешение на таблицу.
Использование SQL Server Management Studio
Удаление ограничения первичного ключа с помощью обозревателя объектов
В Обозревателе объектов разверните таблицу, которая содержит первичный ключ, и разверните узел Ключи.
Щелкните ключ правой кнопкой мыши и выберите команду Удалить.
В диалоговом окне Удаление объекта убедитесь в том, что выбран правильный ключ, и нажмите кнопку ОК.
Удаление ограничения первичного ключа с помощью конструктора таблиц
В обозревателе объектов щелкните таблицу с первичным ключом правой кнопкой мыши и выберите пункт Конструктор.
В сетке таблицы щелкните правой кнопкой строку с первичным ключом и выберите пункт Удалить первичный ключ , чтобы переключить параметр.
Примечание.
Чтобы отменить это действие, закройте таблицу, не сохраняя изменений. Удаление первичного ключа невозможно отменить без потери всех других изменений, внесенных в таблицу.
В менюФайл выберите Сохранитьимя таблицы.
Использование Transact-SQL
Удаление ограничения первичного ключа
В обозревателе объектов подключитесь к экземпляру ядра СУБД.
На стандартной панели выберите пункт Создать запрос.
Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить.
Сначала необходимо определить имя ограничения первичного ключа.
USE AdventureWorks2022; GO -- Return the name of primary key. SELECT name FROM sys.key_constraints WHERE type = 'PK' AND OBJECT_NAME(parent_object_id) = N'TransactionHistoryArchive'; GO
Чтобы создать скрипт
DROP
, используйте результат предыдущего запроса. Замените<primary-key-constraint>
правильным значением. Это может выглядеть примерно так, какPK_TransactionHistoryArchive_TransactionID
.ALTER TABLE Production.TransactionHistoryArchive DROP CONSTRAINT <primary-key-constraint>; GO