如何修改表字段类型。

abcd_net 2003-11-26 11:04:58
如何修改表字段类型。
在有数据的表中修改主键为自动增加,原有数据替换。
...全文
96 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
txlicenhe 2003-11-28
  • 打赏
  • 举报
回复

如何用语句添加或去除表字段的自增属性
http://expert.csdn.net/Expert/topic/2217/2217137.xml?temp=.8302118
abcd_net 2003-11-27
  • 打赏
  • 举报
回复
不行的,不允许给自动增加赋值的
pengdali 2003-11-27
  • 打赏
  • 举报
回复
select top 0 IDENTITY(int,1,1) 编号,其他列 into tem_表 from 表

SET IDENTITY_INSERT Tmp_表 ON

EXEC('INSERT Tmp_表 (编号,其他列) SELECT 编号,其他列 FROM 表')

SET IDENTITY_INSERT Tmp_表 OFF

DROP TABLE 表

EXECUTE sp_rename N'dbo.Tmp_表', N'表'
pengdali 2003-11-27
  • 打赏
  • 举报
回复
CREATE TABLE dbo.Tmp_表
(
编号 int NOT NULL IDENTITY (1, 1),
编号1 int NOT NULL
) ON [PRIMARY]

SET IDENTITY_INSERT dbo.Tmp_表 ON

IF EXISTS(SELECT * FROM dbo.表)
EXEC('INSERT INTO dbo.Tmp_表 (编号, 编号1)
SELECT 编号, 编号1 FROM dbo.表 TABLOCKX')

SET IDENTITY_INSERT dbo.Tmp_表 OFF

DROP TABLE dbo.表


EXECUTE sp_rename N'dbo.Tmp_表', N'表'
abcd_net 2003-11-27
  • 打赏
  • 举报
回复
试过吗?
SET IDENTITY_INSERT 表 ON
好像不管用。
pengdali 2003-11-27
  • 打赏
  • 举报
回复
有数据的话
ALTER TABLE 表 ADD 编号1 bigint identity(1,1) not null
go
SET IDENTITY_INSERT 表 ON
go
update 表 set 编号1=编号
go
SET IDENTITY_INSERT 表 OFF
go
ALTER TABLE 表 DROP COLUMN 编号
go
exec sp_rename '表.编号1','编号'
go
friendliu 2003-11-26
  • 打赏
  • 举报
回复
先增加一个自增长的字段
然后把字段的值赋给你你要想改为自动增加的主键的值

alter table tablename add id int identity(1,1)
go
update tablename set col_name=id
go
alter table tablename drop id
go
abcd_net 2003-11-26
  • 打赏
  • 举报
回复
我要用SQL改,要批量改很多。
wyz52126 2003-11-26
  • 打赏
  • 举报
回复
重新设计表结构不就可以修改了吗?
friendliu 2003-11-26
  • 打赏
  • 举报
回复
alter table bb add id int identity(1,1)

34,590

社区成员

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

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