如何将一主键列改为自增列 ?
如题 问题点数:20、回复次数:5Top
1 楼wangdotnet()回复于 2006-11-03 17:46:21 得分 0
顶Top
2 楼wyb0026(小小)回复于 2006-11-03 17:56:49 得分 0
第一步先不要把主键列改为自增列
create table dd( a int,v char(10))
........
declare @a int
set @a=1
update dd set a=@a,@a=@a+1
第二步 更新完之后 在企业管理起一改就行了Top
3 楼gc_ding(施主,给个妞泡好么)回复于 2006-11-03 18:22:52 得分 0
IDENTITY只能在如下情况下建立:
a.在创建表时创建新的IDENTITY列
b.在现有表中创建新的IDENTITY列
*** 直接在企业管理器里改最快
如果你用事件探察器追踪了一下,会发现原来sql也是创建了个新的表加了标识,然后把老的数据再复制过去Top
4 楼Hopewell_Go(好的在后頭﹗希望更好﹗﹗)回复于 2006-11-03 20:42:53 得分 0
将表的某个int字段改为自增字段
CREATE TABLE dbo.Tmp_A
(
ReasonId int NOT NULL IDENTITY (1, 1),
Reason varchar(200) NULL
) ON [PRIMARY]
GO
SET IDENTITY_INSERT dbo.Tmp_A ON
GO
IF EXISTS(SELECT * FROM dbo.A)
EXEC('INSERT INTO dbo.Tmp_A (ReasonId, Reason)
SELECT ReasonId, Reason FROM dbo.A TABLOCKX')
GO
SET IDENTITY_INSERT dbo.Tmp_A OFF
GO
DROP TABLE dbo.A
GO
EXECUTE sp_rename N'dbo.Tmp_A', N'A', 'OBJECT'
GOTop
5 楼bimyboy(★浩天雪狐★)回复于 2006-11-04 14:05:27 得分 0
markTop




