sql自增长设置与删除的深入分析_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2377 | 回复: 0   主题: sql自增长设置与删除的深入分析        下一篇 
yanghui
注册用户
等级:上尉
经验:584
发帖:92
精华:0
注册:2011-12-13
状态:离线
发送短消息息给yanghui 加好友    发送短消息息给yanghui 发消息
发表于: IP:您无权察看 2015-5-15 10:41:06 | [全部帖] [楼主帖] 楼主

identity(1,1)是指每插入一条语句时这个字段的值增1, 

语法 

IDENTITY   [   (   seed   ,   increment   )   ]

参数 

seed

装载到表中的第一个行所使用的值(标示种子)。 

increment

增量值,该值被添加到前一个已装载的行的标识值上(标示增量)。 

必须同时指定种子和增量,或者二者都不指定。如果二者都未指定,则取默认值   (1,1)。

例如:

create table WorkRoom

(WorkRoomID int not null identity(1,1) primary key,

WorkRoomName Varchar(50) null,

TeacherName Varchar(10) null,

WorkRoomManager Varchar(10) null,

WorkRoomPlan Varchar(max) null,

Purl Varchar(50) null,

Remarks Varchar(max) null,

)

修改s创建标示和删除标示:

ALTER TABLE TABLENAME DROP COLUMN ID

ALTER TABLE TABLENAME ADD ID int identity(1,1) not null

如何用sql语句去掉列的自增长(identity)

========================================

如何用sql语句去掉列的自增长(identity),取消标识命令:

**无法通过alter把现有自增字段改为非自增

比如alter table a alter id int,自增属性不会去掉

通过修改系统表可以做到(此法可能有不可预知的结果,慎之...)

sp_configure 'allow updates', 1

GO

reconfigure with override

GO

update syscolumns set colstat = colstat & 0x0000

where id=o b j e c t_id('表名') and name='字段名'

GO

sp_configure 'allow updates', 0

---------------------------------

--折中的办法

alter table a add xxx int

update a set xxx=id

alter table a drop column id

exec sp_rename 'xxx', 'id', 'column'

========================================

第一个方法是可以去掉,但以后可能会导致出问题,建议用第二个方法,我用的语句现在也贴出来,也许需要的朋友有些用处

删除表 zx_user 中字段 userid 的自增长属性方法:

//新建临时字段

alter table zx_user add useridtmp int null

//赋值

update zx_user set useridtmp =userid

//删除主键

alter table zx_user drop pk_zx_user

//删除字段

alter table zx_user drop column userid

//增加字段

alter table zx_user add userid int null

//把值还原回来

update zx_user set userid = useridtmp

//删除临时字段

alter table zx_user drop column useridtmp

//修改新建字段不为空

alter table zx_user alter column userid int not null

//健主键,多个字段做主键,用逗号隔开,比如primary key (userid,xxxxxx)

alter table zx_user add primary key (userid)

========================================

删除主键时候,不知道你主键名字,请用一下方法查询:

select * from syso b j e c ts where xtype='PK

--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论