2016-02-23 3 views
-4

У меня есть таблица с 15 записями. В таблице нет ограничения первичного ключа.Установите первичный ключ в существующую таблицу

Теперь я хочу установить первичный ключ в существующем столбце. Как установить столбец с ограничениями первичного ключа в существующую таблицу? Может ли кто-нибудь предоставить запрос для изменения столбца?

Это для SQL Server 2008.

+1

Существующие записи должны быть уникальными перед добавлением первичного ключа – yuvi

+0

Это является основной операцией. Попробуйте использовать Google, прежде чем задавать свой вопрос здесь. Если бы вы это сделали, вы бы нашли https://msdn.microsoft.com/en-us/library/ms189039.aspx – SubliemeSiem

+0

. Ваш вопрос не показывает никаких исследований. –

ответ

0

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

ALTER TABLE table_name 
ADD CONSTRAINT Primarykeyname PRIMARY KEY (column_name); 

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

+0

ALTER TABLE table_name ADD CONSTRAINT ?????? ? ПЕРВИЧНЫЙ КЛЮЧ (название столбца ????); –

1

Это исполняемый скрипт. Попробуйте это:

IF NOT EXISTS(SELECT 'X' 
       FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS 
       WHERE CONSTRAINT_NAME = 'PRIMARY_KEY_NAME' 
        AND TABLE_NAME = 'TABLE_NAME') 
    ALTER TABLE TABLE_NAME 
    ADD CONSTRAINT PRIMARY_KEY_NAME PRIMARY KEY(COLUMN_NAME_TO_BE_ADDED_AS_PRIMARY_KEY) 

GO 
0

Установка первичного ключа просто, как в приведенном ниже запросе, но столбец должен быть объявлен не нулевым, и если какие-либо существующие значения нарушают ограничение первичного ключа, ваш запрос не может быть успешным.

create table 
#temp 
(
id int 
) 

ALTER TABLE #temp 
ADD CONSTRAINT id_pk PRIMARY KEY (id) 

Вышеуказанное не удастся. Вы должны выполнить ниже запрос первого по крайней мере, в SQL Server 2005.

alter table #temp 
alter column id int not null 
Смежные вопросы