写一条sql语句设置id列为主键

butter0000 2009-01-30 07:43:14
写一条sql语句设置id列为主键?就是让它能自动加1.谢谢回答。
...全文
64982 点赞 收藏 15
写回复
15 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
copy_zn 2012-08-05
alter 之后add primary key约束就可以了
回复
ALTER TABLE 表名 ADD 列名 int identity(1,1) primary key
回复
肥龙上天 2009-02-01
如是新建一个表

CREATE TABLE #t
(
id INT IDENTITY(1,1) PRIMARY KEY,
sname VARCHAR(20)
)

insert #t values('美丽人生')
insert #t values('love yao')
select * from #t

id sname
----------- --------------------
1 美丽人生
2 love yao

(2 row(s) affected)

--------------------------------------------------------
若是对已经存在的表加上主键约束

CREATE TABLE #t2
(
id int,
sname NVARCHAR(20)
)

alter table #t2
add constraint PK_ID PRIMARY KEY (ID)

--------------------------------------------------------
修改自增列
一种方法是在企业管理器中直接修改ID列的属性
另一种方法是添加一个新的自增列代替原来的列下面这种方法编译不过去

alter table tablename
alter colunm colunmname identity(1,1)


正确方法是

CREATE TABLE #t3
(
id int,
sname NVARCHAR(20)
)
insert #t3 values(1,'abc1')
insert #t3 values(3,'abc2')
insert #t3 values(43,'abc3')
insert #t3 values(23,'abc4')
select * from #t3
go
alter table #t3
drop column id
alter table #t3
add ID int identity(1,1)
select * from #t3
go



----------- --------------------
1 abc1
3 abc2
43 abc3
23 abc4

(4 row(s) affected)

sname ID
-------------------- -----------
abc1 1
abc2 2
abc3 3
abc4 4

(4 row(s) affected)
回复
Zoezs 2009-02-01
先用alter把id设为主键,再让它自加1 identity(1,1)
(种子值为1,步长为1)
回复
lihan6415151528 2009-02-01
创建表时候
CREATE TABLE tb
(
id INT IDENTITY(1,1) PRIMARY KEY,
)

添加时候
ALTER TABLE tb
ADD CONSTRAINT PK_id PRIMARY KEY (id)

去除时候

alter table tb
drop constraint PK_id

回复
yinsuxia 2009-01-31
ALTER TABLE Employees
ADD CONSTRAINT PK_EmployeesID PRIMARY KEY (EmployeeID)
回复
kevin 2009-01-31
[Quote=引用 2 楼 tjvictor 的回复:]
把此列设置为identity(1,1)
alter table tablename
    alter colunm colunmname identity(1,1)
[/Quote]

这种写法对,应该不需要设置primary key了, identity不能再会产生重复了。
回复
wxch 2009-01-31
CREATE TABLE [dbo].[login] (
[login_id] [int] IDENTITY (1, 1) NOT NULL ,
) ON [PRIMARY]
GO
回复
ruihuahan 2009-01-30
alter table table_name
drop constraint constraint_name
回复
butter0000 2009-01-30
那把id定义为主键之后,怎么取消呢?就是取消掉主键?
回复
cngothic 2009-01-30
楼上的不是吧。 都没有PK关键词怎么会是设置主键尼

ALTER TABLE Employees
ADD CONSTRAINT PK_EmployeesID PRIMARY KEY (EmployeeID)

设置主键关键词是 PRIMARY KEY
CONSTRAINT PK_EmployeesID 设置主键名称
回复
butter0000 2009-01-30
[Quote=引用 2 楼 tjvictor 的回复:]
把此列设置为identity(1,1)
alter table tablename
alter colunm colunmname identity(1,1)
[/Quote]

这个就是吧,我真晕
回复
butter0000 2009-01-30
如果在创建表的时候忘记设id为主键,想在后面把它修改为主键,要怎么写?谢谢。
回复
灰太狼 2009-01-30
把此列设置为identity(1,1)
alter table tablename
alter colunm colunmname identity(1,1)
回复
firecc05 2009-01-30

CREATE TABLE tb
(
id INT IDENTITY(1,1) PRIMARY KEY,
name VARCHAR(20)
)
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2009-01-30 07:43
社区公告
暂无公告