使⽤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小时内删除。
发表评论