Поделиться через


Удаление первичных ключей

применяется к: 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

Удаление ограничения первичного ключа с помощью обозревателя объектов

  1. В Обозревателе объектов разверните таблицу, которая содержит первичный ключ, и разверните узел Ключи.

  2. Щелкните ключ правой кнопкой мыши и выберите команду Удалить.

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

Удаление ограничения первичного ключа с помощью конструктора таблиц

  1. В обозревателе объектов щелкните таблицу с первичным ключом правой кнопкой мыши и выберите пункт Конструктор.

  2. В сетке таблицы щелкните правой кнопкой строку с первичным ключом и выберите пункт Удалить первичный ключ , чтобы переключить параметр.

    Примечание.

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

  3. В менюФайл выберите Сохранитьимя таблицы.

Использование Transact-SQL

Удаление ограничения первичного ключа

  1. В обозревателе объектов подключитесь к экземпляру ядра СУБД.

  2. На стандартной панели выберите пункт Создать запрос.

  3. Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить.

    • Сначала необходимо определить имя ограничения первичного ключа.

      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