sql字段自增
A. sql server中如何实现自增字段
1、主键自增,以及建表的语句如下:
CREATE TABLEIF NOT EXISTS `t_email_notice` (
`id` INT (11) UNSIGNED NOT NULL AUTO_INCREMENT,`send_time` INT (16) NOT NULL DEFAULT '0',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
其中 `id` INT (11) UNSIGNED NOT NULL AUTO_INCREMENT,这句话表示设置id字段字增,类型为int
2、varchar类型的主键,不会自增。但是你可以通过创建触发器的形式,来实现自增。代码如下:
CREATE TRIGGER `T` BEFORE INSERT ON `user`FOR EACH ROW begin
set new.id=concat('SH',lpad(((SELECT substring(id,3,4) from user where id=(select id from user order by id desc limit 1))+1),4,0));
end;
这段语句的意思是,当user表中新插入一条一条语句,会触发‘触发器T’将以’SH‘开头的id字段自增+1。
(1)sql字段自增扩展阅读
sql语句建表规则如下:
create table ‘表名’ (‘字段1’ type1 [not null] [primary key] identity(起始值,递增量),‘字段2’type2 [not null], ...)--primary key为主键 identity表示递增数量。
B. sql主键列自增问题
环境:sql
server
2008
问题:设置主键和把它设为自增。
解决:点击table->选中表->design->选中需要设置主键的字段,单击右键"设置主键"即可。
若要设置主键自增,在列属性中找到标识规范,单击左边的"+"号,把否改为是,其他默认即可。
C. SQL语句怎样实现自增字段初始化
有一个方法可以试试
手工做:在你的表里加个字段,如你希望ID从1开始,新增加一个ID1设为
自动增加,标识,然后删除原来的ID就可以了
CREATE
TABLE
tblNewOrder2
(OrderId
AUTOINCREMENT
(1000,
10),
ItemId
LONG,
Quantity
LONG)create
table
LINE(ID
counter
(1,
1))--其中第一个参数为初始值,第二个为步进值--或create
table
LINE(ID
autoincrement(1,1)-其中第一个参数为初始值,第二个为步进值
D. sqlserver2005 将字段设置为自增
自增列不能直接修改,必须将原有ID列删除,然后重新添加一列具有identity属性的ID字段。比如你要修改的字段名为ID:
alter
table
表名
drop
column
ID
alter
table
表名
add
ID
int
identity(1,1)
E. SQL 自动增长字段 问题
这是SQL的机制,没有办法改变!你删除了2
3
4
后面从9开始,没必要还继续用
2
3
4呀!你说的后面会越来越大是对的,但是int类型的少了删除的这些不影响后面的增长,当然你的程序和这些是否连续没有关系,所以你没有必要关心它是否连续!如果你看着不舒服的话,建议你使用GUID类型做为主键!
F. 如何用sql语句将一个表的字段改为主键自增
--为一个表添加一个主键约束
_TREEINFOPRIMARYKEY(ID);
--无法修改现有字段为自增字段,只能在建表时标注字段自增,如
CREATETABLEMYTABLE(
IDINTPRIMARYKEYIDENTITY(1,1),
NAMEVARCHAR(20),
...
);
G. 在SqlServer中怎样设置自动增长字段
sqlserver有3种方式设置自增列,
1.
ssms中在图形化界面中建表时,设置自动增长的其实值及每次增量
2.
--语句建表时设置自增列,从1开始增长,每次增加1
create
table
test(col1
int
indentity(1,1,))
3.
--修改列为从1开始增长,每次增加10
alter
table
test
alter
col1
int
indentity(1,10)
H. 如何在Sql查询语句中加上一个自增字段
SqlServer中的自增的ID的最后的值:
SELECT SCOPE_IDENTITY() --返回插入到同一作用域中的 IDENTITY 列内的最后一个 IDENTITY 值。
SELECT @@IDENTITY --返回插入到当前会话中任何作用域内的最后一个 IDENTITY 列值
SELECT IDENT_CURRENT('TbName')--不受作用域和会话的限制,而受限于指定的表。
IDENT_CURRENT 返回为任何会话和作用域中的特定表所生成的值。
一个作用域就是一个模块——存储过程、触发器、函数或批处理。因此,如果两个语句处于同一个存储过程、函数或批处理中,则它们位于相同的作用域中。
SQL可以多个语句一起执行:
insert into ... ; SELECT SCOPE_IDENTITY() ;
二条一起执行,到时可获取第二个SQL的值
I. oracle sql developer建表的时候id字段的自动递增怎么设置
oracle sql developer建表的时候id字段的自动递增的设置方法和步骤如下:
1、首先,打开sql
server数据库,创建一个新表,然后在表中创建id字段并选择int类型,如下图所示,然后进入下一步。