使⽤sql语句实现设置主键⾃增长列
1.新建⼀数据表,⾥⾯有字段id,将id设为为主键
create table tb(id int,constraint pkid primary key (id))
create table tb(id int primary key )
2.新建⼀数据表,⾥⾯有字段id,将id设为主键且⾃动编号
create table tb(id int identity(1,1),constraint pkid primary key (id))
create table tb(id int identity(1,1) primary key )
3.已经建好⼀数据表,⾥⾯有字段id,将id设为主键
alter table tb alter column id int not null
alter table tb add constraint pkid primary key (id)
4.删除主键
Declare @Pk varChar(100);
Select @Pk=Name from sysobjects where Parent_Obj=OBJECT_ID('tb') and xtype='PK';
if @Pk is not null
exec('Alter table tb Drop '+ @Pk)
另外⽅法:
create  table  ttt
(
t1  int,
t2  varchar(8)
)
現在想把字段t1設為⾃增字段和主鍵.
那麼運⾏下⾯的代碼:
CREATE  TABLE  dbo.Tmp_ttt
(
t1  int  NOT  NULL  IDENTITY  (1,  1),
t2  varchar(8)  NULL
)
go
SET  IDENTITY_INSERT  dbo.Tmp_ttt  ON
go
IF  EXISTS(SELECT  *  FROM  )
EXEC('INSERT  INTO  dbo.Tmp_ttt  (t1,  t2)
SELECT  t1,  t2  FROM    TABLOCKX')
go
SET  IDENTITY_INSERT  dbo.Tmp_ttt  OFF
go
DROP  TABLE 
go
EXECUTE  sp_rename  N'dbo.Tmp_ttt',  N'ttt',  'OBJECT'
go
ALTER  TABLE    ADD  CONSTRAINT
PK_ttt  PRIMARY  KEY  CLUSTERED
(
t1
)  ON  [PRIMARY]
COMMIT
為什麼不⽤
alter  table  ttt  drop  column  t1
go
alter  table  ttt  add  t1  identity(1,1)  not  null
go
alter  table  ttt  add  constrain  primary  key  pk_t  (t1)增加字段的sql语句
的⽅法.
是因為先刪掉⼀列.再增加⼀列.
那麼列的順序就改變了.
有可能帶來意想不到的問題.
(⽐⽅說,你的程序中有個insert語句是沒有寫字段名的)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。