首页 > 数据库 > MySQL > 正文

sql自增长设置与删除的深入分析

2024-07-24 12:40:49
字体:
来源:转载
供稿:网友
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 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
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表