在创建表的时候可以设置,方法如下,用一下sql语句。
createtabletableName(
idintidentity(1,1)primarykey,
datavarchar(50))
解释:其中identity(1,1)代表自增,第一个1代表从1开始计数,第二个1代表每次增长1。
(1)sql自增id扩展阅读:
SQL全名是结构化查询语言[1](Structured Query Language),是用于数据库中的标准数据查询语言,IBM公司最早使用在其开发的数据库系统中。1986年10月,美国国家标准学会(ANSI) 对 SQL 进行规范后,以此作为关系式数据库管理系统的标准语言 (ANSI X3. 135-1986),1987年得到国际标准组织的支持下成为国际标准。不过各种通行的数据库系统在其实践过程中都对 SQL 规范作了某些编改和扩充。所以,实际上不同数据库系统之间的SQL不能完全相互通用。
参考资料:
网络-SQL语言
B. sql自增id怎么写 并且设置成为主键
主键字段 int identity(11,1) primary key
这样就可以了。
主键只能有1个,可以是一个字段,也可以是多个字段组合的。
C. 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。
(3)sql自增id扩展阅读
sql语句建表规则如下:
create table ‘表名’ (‘字段1’ type1 [not null] [primary key] identity(起始值,递增量),‘字段2’type2 [not null], ...)--primary key为主键 identity表示递增数量。
D. sql server怎么获取自增的id值
SELECT SCOPE_IDENTITY() --返回插入到同一作用域中的 IDENTITY 列内的最后一个 IDENTITY 值。
SELECT @@IDENTITY --返回插入到当前会话中任何作用域内的最后一个 IDENTITY 列值
SELECT IDENT_CURRENT('TbName')--不受作用域和会话的限制,而受限于指定的表。
E. 如何得到SqlServer的自增ID
SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY
IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。
IDENT_CURRENT 返回为任何会话和作用域中的特定表所生成的值。
SCOPE_IDENTITY 和 @@IDENTITY
返回在当前会话中的任何表内所生成的最后一个标识值。
但是,SCOPE_IDENTITY 只返回插入到当前作用域中的值;@@IDENTITY
不受限于特定的作用域。
例如,有两个表 T1 和 T2,并且在 T1 上定义了 INSERT 触发器。
当将某行插入 T1 时,触发器激发,并在 T2 中插入一行。
该方案演示了两个作用域:在 T1 上的插入,以及在 T2 通过触发器的插入。
假设 T1 和 T2 都有标识列,@@IDENTITY 和 SCOPE_IDENTITY 将在 T1 上的
INSERT 语句结束后返回不同的值。
@@IDENTITY 将返回在当前会话中的任何作用域内插入的最后一个标识列的值。
这是在 T2 中插入的值。
SCOPE_IDENTITY() 将返回在 T1 中插入的 IDENTITY 值。
这是在同一个作用域内发生的最后的插入。
如果在任何 INSERT 语句作用于作用域中的标识列之前调用 SCOPE_IDENTITY()
函数,则该函数将返回 Null。
如果语句和事务失败,它们会更改表的当前标识,从而使标识列中的值出现不连贯现象。
即使未提交试图向表中插入值的事务,也永远无法回滚标识值。
例如,如果因 IGNORE_DUP_KEY 冲突而导致 INSERT
语句失败,表的当前标识值仍然会增加。
F. sql 设置主键 自动增长
Alter table tabname add primary key(col) 设置主键
SELECT * FROM sys.columns WHERE object_id=OBJECT_ID('表名') AND is_identity=1自增列应该是这样
G. sql server建表时怎么设置ID字段自增
sql server建表时设置ID字段自增的方法有两种:
1 、在SQL Server Management Studio中实现SQL Server自增字段
打开SQL Server Management Studio,打开数据库之后,在选中的表上点“修改”,在选中需要设置为自增的字段,在右下方的表设计器里选择“标识规范”,选“是”,就设定即可。
2、使用SQL语句在程序或者查询分析器里面实现SQL Server自增字段
sql server 设置自增字段identity属性 (以新建数据表tablename中的id字段为例)
createtabletablename
(
idintidentity(1,1) //identity表示自增列的意思,而int identity(1,1)表示从1开始递增,每次自增1。
)
这样设置之后,tablename数据表中的id字段就是自增列。
如果想实现带前缀或者后缀的自动增加字段,不能用varchar,还是使用上面的方法创建字段,但是在读取的时候用增加前后缀的形式来显示想要的效果,例如如果希望得出结果是a001可以这么做select 'a'+convert(varchar(20),id) from tablename,这里的tablename是刚才建立的具体的表明。
H. id自增 sql语句怎么写
mysql的
create table t_user(
id int primary key auto_increment
)
oracle的
CREATE SEQUENCE user_sequence
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10;
一旦定义了user_sequence,你就可以用CURRVAL,NEXTVAL
CURRVAL=返回 sequence的当前值
NEXTVAL=增加sequence的值,然后返回 sequence 值
INSERT INTO t_user VALUES
(user_sequence.nextval);
I. SQL Server中怎样设置id号自动增长
createtable表名--第一种用sql建表identity(1,1)为每次递增1位primarykey为主键
(
idintidentity(1,1)primarykey
)
--第二种用设计器来操作
--鼠标对准你需要操作的表名右击=>设计=>
选中你需要操作的列名然后在下方有一个列属性=>选择标识规范=>
将标识增量此选项选为(是)下面有一个标识种子默认为1(每次递增1,可修改)
J. sql 字符串型ID 如何自增
数据库中的ID自增只能用int。
如果你想用字符串并自增,得自己在程序中插入数据的时候进行控制。