不能直接修改,如果你不需要保留id字段的内容,就用一楼的方法,否则的话就且下面的方法 BEGIN TRANSACTIONselect top 0 * into tmp_tb from tb --根据旧表创建临时表的数据结构 go alter table tmp_tb drop column id --移除id字段 go alter table tmp_tb add column id int identity(1,1) --加上自动编号的id字段 go SET IDENTITY_INSERT Tmp_db ON GO INSERT INTO Tmp_db (全部字段名称列表) SELECT 全部字段名称列表 FROM db --将数据复制到临时表中 GO SET IDENTITY_INSERT Tmp_db OFF GO DROP TABLE db GO EXECUTE sp_rename N'Tmp_db', N'db', 'OBJECT' GO COMMIT
有数据的话 ALTER TABLE 表 ADD 编号1 bigint identity(1,1) not null go SET IDENTITY_INSERT 表 ON go update tablename set 编号1=编号 go SET IDENTITY_INSERT 表 OFF go ALTER TABLE 表 DROP COLUMN 编号 go exec sp_rename '表.编号1','编号' go
先把数据放到临时表并清空现有表数据,删除现有ID字段,添加一个自增ID字段,再把数据导入。
BEGIN TRANSACTIONselect top 0 * into tmp_tb from tb --根据旧表创建临时表的数据结构
go
alter table tmp_tb drop column id --移除id字段
go
alter table tmp_tb add column id int identity(1,1) --加上自动编号的id字段
go
SET IDENTITY_INSERT Tmp_db ON
GO
INSERT INTO Tmp_db (全部字段名称列表)
SELECT 全部字段名称列表 FROM db --将数据复制到临时表中
GO
SET IDENTITY_INSERT Tmp_db OFF
GO
DROP TABLE db
GO
EXECUTE sp_rename N'Tmp_db', N'db', 'OBJECT'
GO
COMMIT
ALTER TABLE 表 ADD 编号1 bigint identity(1,1) not null
go
SET IDENTITY_INSERT 表 ON
go
update tablename set 编号1=编号
go
SET IDENTITY_INSERT 表 OFF
go
ALTER TABLE 表 DROP COLUMN 编号
go
exec sp_rename '表.编号1','编号'
go