使varchar列成为PRIMARY KEY

时间:2013-09-02 07:35:15

标签: sql sql-server sql-server-2008-r2 primary-key alter

我做了一张桌子:

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 NULLUNIQUE。我的问题是,我们可以将varchar列设为primary key,如果是,则上述alter列脚本是否正确。

1 个答案:

答案 0 :(得分: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);