sql自增長設(shè)置與刪除的深入分析
更新時間:2013年06月04日 10:15:32 作者:
本篇文章是對sql自增長設(shè)置與刪除進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
identity(1,1)是指每插入一條語句時這個字段的值增1,
語法
IDENTITY [ ( seed , increment ) ]
參數(shù)
seed
裝載到表中的第一個行所使用的值(標(biāo)示種子)。
increment
增量值,該值被添加到前一個已裝載的行的標(biāo)識值上(標(biāo)示增量)。
必須同時指定種子和增量,或者二者都不指定。如果二者都未指定,則取默認(rèn)值 (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創(chuàng)建標(biāo)示和刪除標(biāo)示:
ALTER TABLE TABLENAME DROP COLUMN ID
ALTER TABLE TABLENAME ADD ID int identity(1,1) not null
如何用sql語句去掉列的自增長(identity)
========================================
如何用sql語句去掉列的自增長(identity),取消標(biāo)識命令:
**無法通過alter把現(xiàn)有自增字段改為非自增
比如alter table a alter id int,自增屬性不會去掉
通過修改系統(tǒng)表可以做到(此法可能有不可預(yù)知的結(jié)果,慎之...)
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'
========================================
第一個方法是可以去掉,但以后可能會導(dǎo)致出問題,建議用第二個方法,我用的語句現(xiàn)在也貼出來,也許需要的朋友有些用處
刪除表 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
語法
IDENTITY [ ( seed , increment ) ]
參數(shù)
seed
裝載到表中的第一個行所使用的值(標(biāo)示種子)。
increment
增量值,該值被添加到前一個已裝載的行的標(biāo)識值上(標(biāo)示增量)。
必須同時指定種子和增量,或者二者都不指定。如果二者都未指定,則取默認(rèn)值 (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創(chuàng)建標(biāo)示和刪除標(biāo)示:
ALTER TABLE TABLENAME DROP COLUMN ID
ALTER TABLE TABLENAME ADD ID int identity(1,1) not null
如何用sql語句去掉列的自增長(identity)
========================================
如何用sql語句去掉列的自增長(identity),取消標(biāo)識命令:
**無法通過alter把現(xiàn)有自增字段改為非自增
比如alter table a alter id int,自增屬性不會去掉
通過修改系統(tǒng)表可以做到(此法可能有不可預(yù)知的結(jié)果,慎之...)
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'
========================================
第一個方法是可以去掉,但以后可能會導(dǎo)致出問題,建議用第二個方法,我用的語句現(xiàn)在也貼出來,也許需要的朋友有些用處
刪除表 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
相關(guān)文章
mysql 本地數(shù)據(jù)庫如何從遠(yuǎn)程數(shù)據(jù)庫導(dǎo)數(shù)據(jù)
mysql 本地數(shù)據(jù)庫如何從遠(yuǎn)程數(shù)據(jù)庫導(dǎo)數(shù)據(jù),本文以此問題進(jìn)行詳細(xì)介紹,需要了解的朋友可以參考下2012-11-11解析MSSQL跨數(shù)據(jù)庫查詢的實(shí)現(xiàn)方法
本篇文章是對MSSQL跨數(shù)據(jù)庫查詢的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06Mysql:The user specified as a definer (''xxx@''%'') does not
今天小編就為大家分享一篇關(guān)于Mysql:The user specified as a definer ('xxx@'%') does not exist的解決方案,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12