2013-09-02 3 views
1

Я сделал таблицу:делает столбец VARCHAR быть PRIMARY KEY

id int, 
name varchar(50), 
addr varchar(50), 
location varchar(20) 

Теперь я хочу сделать addr колонку быть PRIMARY KEY COLUMN. Я попробовал скрипт:

alter table aaa 
add constraint pk_addr primary key(addr) 

Но это показывает ошибки и данные в этом столбце также NOT NULL и UNIQUE .My вопрос заключается в том, что мы можем сделать varchar столбец быть primary key, если да, то выше alter колонка скрипт правильный или нет.

+0

Может быть, вы пытаетесь изменить столбец, который имеет значение с 'null' или некоторые значения одинаковы, и мы знаем, что первичная ключ должен быть уникальным .. –

+0

Если у вас есть эти проблемы, попробуйте внести изменения через SQL Management Studio и вместо выполнения Save создайте скрипт и посмотрите на сгенерированный скрипт. – xanatos

+0

@BkSantiago Я упомянул, что значение в столбце NOT NULL и UNIQUE – user2728106

ответ

2

вы должны указать, что столбец aaa не обнуляемым:

create table aaa (id int, name varchar(50), addr varchar(50), location varchar(20)); 

alter table aaa alter column addr varchar(50) not null; 
alter table aaa add constraint pk_addr primary key(addr); 
+0

works.thank you !! – user2728106

Смежные вопросы