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

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

时间: 2024-08-22 14:56:39

sql自增长设置与删除的深入分析_Mysql的相关文章

《SQL Server企业级平台管理实践》读书笔记——SQL Server如何设置自动增长和自动收缩项

原文:<SQL Server企业级平台管理实践>读书笔记--SQL Server如何设置自动增长和自动收缩项 SQL Server允许用户设置数据库初始值和最大值,可以通过自动增长或者自动收缩进行配置.通过这些配置,我们可以防止数据库空间问题而导致的应用程序修改失败或者SQL Server磁盘空间耗尽的事情发生.一般来讲,如果数据库不是很忙,默认的设置为自动增长,这种方式能够满足大部分的需求.但是在大量并发的情况下,申请数据文件和日志文件增长本身是一件非常消耗系统资源和影响性能的工作.所以如果

SQL INJECTION的SQL SERVER安全设置

server|安全   日前SQL INJECTION的攻击测试愈演愈烈,很多大型的网站和论坛都相继被注入.这些网站一般使用的多为SQL SERVER数据库,正因为如此,很多人开始怀疑SQL SERVER的安全性.其实SQL SERVER 2000已经通过了美国政府的C2级安全认证-这是该行业所能拥有的最高认证级别,所以使用SQL SERVER还是相当的安全的.当然和ORCALE.DB2等还是有差距,但是SQL SERVER的易用性和广泛性还是能成为我们继续使用下去的理由.那怎么样才能使SQL

针对SQL INJECTION的SQL SERVER安全设置初级篇

server|安全 日前SQL INJECTION的攻击测试愈演愈烈,很多大型的网站和论坛都相继被注入.这些网站一般使用的多为SQL SERVER数据库,正因为如此,很多人开始怀疑SQL SERVER的安全性.其实SQL SERVER 2000已经通过了美国政府的C2级安全认证-这是该行业所能拥有的最高认证级别,所以使用SQL SERVER还是相当的安全的.当然和ORCAL.DB2等还是有差距,但是SQL SERVER的易用性和广泛性还是能成为我们继续使用下去的理由.那怎么样才能使SQL SER

请教,sql能不能设置一列,自动统计另一张表每个数据的个数?

问题描述 请教,sql能不能设置一列,自动统计另一张表每个数据的个数? 请教,sql能不能设置一列,自动统计另一张表每个数据的个数? 例如: 表a id(部门),zw(职务),name(姓名) 人力部 经理 张三 人力部 副经理 李四 人力部 副经理 王五 开发部 副经理 柳柳 开发部 副经理 琪琪 表b id(公司),zw(职务),sum(数量) 人力部 经理 1 人力部 副经理 2 要在表b的sum中自动统计每个id(部门)有几个经理,几个副经理. 表a变化,表b就自动跟着变,应该怎么做?

替代变量与SQL*Plus环境设置

--============================ -- 替代变量与SQL*Plus环境设置 --============================     1.SQL与PL/SQL代码终止符     SQL代码以";"来表示代码的终止     PL/SQL代码以"."来表示代码的终止,以"/"表示代码的执行         scott@ORCL> select * from emp where empno=7788;  

关于SQL Server自动备份无法删除过期的备份文件奇怪现象

server|备份 关于SQL Server自动备份无法删除过期的备份文件 数据库服务器每天凌晨两点进行数据库备份,同时对5天前的数据库备份文件进行删除,不然的话就会把硬盘给撑爆的 windows的日志里给出信息:SQL Server Scheduled Job 'DB 维护计划"数据库维护计划1"的 DB 备份作业.' (0x2DA54A5BBEFC2B4A874428B91602C52A) - Status: 失败 - Invoked on: 2005-09-09 01:00:00

Sql server 2005 维护计划无法删除?

  本文主要讲述Sql server 2005 维护计划无法删除问题(sql server 2005 maintnance plan can not delete),以下为全文: 一台要改IP和主机名的数据库,只把数据库instance修改了,忘记把维护计划删除了等IP和主机名改好重启后,维护计划无法删除了. 原因是这些计划是原来连接上的OLDSvr@usr-plans. 那怎么办呢! 1.先把原数据库连接干掉: 登陆MS SQL Server Management Studio(新HOST),

JavaScript cookie的设置获取删除

这篇文章主要介绍了JavaScript cookie的设置获取删除等等,,需要的朋友可以参考下 设置cookie    每个cookie都是一个名/值对,可以把下面这样一个字符串赋值给document.cookie:   document.cookie="userId=828";    如果要一次存储多个名/值对,可以使用分号加空格(; )隔开,例如:  document.cookie="userId=828; userName=hulk";    在cookie的

系统-请问大神SQL Server怎样设置加分限制

问题描述 请问大神SQL Server怎样设置加分限制 各位大神,渣新一枚,现在在做一个系统,学生的平时表现分数评定系统,大概是根据学校的规定制定加减分项,放在系统中,然后由学生自己对符合条件的加分项进行申请,班主任登录进行审批,而现在有个问题是,每个加分项都有累计加分限制,所以就想问这个加分限制应该怎样实现呢?理想效果是当学生进行申请时,如果他的该项分数已经达到上限或此次加分后就会超过上限,则此次申请无法提交并告知该学生原因--求大神指导,万分感谢!!!!!!!(>﹏<) 解决方案 加三个前