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

butter0000 2009-01-30 07:43:14
写一条sql语句设置id列为主键?就是让它能自动加1.谢谢回答。
...全文
66256 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
copy_zn 2012-08-05
  • 打赏
  • 举报
回复
alter 之后add primary key约束就可以了
会飞的小洋洋 2009-02-02
  • 打赏
  • 举报
回复
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
  • 打赏
  • 举报
回复 1
先用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)
)

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧