sql自动生成编号
1. 利用sql语句自动生成序列号:SELECT (@i :=@i + 1)
@i:=@i+1表示序号依次加1
后面的查询SELECT @i := 0是为了将i进行初始化每次查询的序列号都会从1开始进行排序生成序列号
用SQL语句可以这样写就能生成序列号: select(@i:=@i+1)as 序号 from (select @i:=0) as i
SELECT (@i:=@i+1) 序号 , name as 所属组织,resource as 单位 FROM cx_external_resources , (SELECT @i:=0) as i
2. SQL数据库列自动生成编号
两种方法:
1、用Truncate
TRUNCATETABLEname可以删除表内所有值并重置标识值
2、用DBCC CHECKIDENT
DBCCCHECKIDENT('table_name',RESEED,new_reseed_value)如dbcc checkident ("bc_pos",reseed,1)即可,
但如果表内有数据,则重设的值如果小于最大值可能会有问题,这时可以用 dbcc checkident("bc_pos",reseed)即可自动重设值。
注意:
只能为不允许空值且数据类型为 decimal、int、numeric、smallint、bigint 或 tinyint 的列设置标识属性。此外,不能为主键列设置标识属性。
(2)sql自动生成编号扩展阅读:
关于上述标识列的引用
如果在SQL语句中引用标识列,可用关键字IDENTITYCOL代替,例如,若要查询上例中ID等于1的行,
以下两条查询语句是等价的:
1、SELECT * FROM T_test WHERE IDENTITYCOL=1
2、SELECT * FROM T_test WHERE
3. 创建自动编号字段的sql语句怎么写
第一种方式:创建table的时候直接创建一个自增长的标识列,以这个标识列为编号;
第二种方式:查询table的时候自动生成排知档序编睁戚号,可悉猛陵以使用row_number()
over(),比如
SELECT
*,
Row_Number()
OVER
(partition
by
deptid
ORDER
BY
salary
desc)
rank
FROM
employee
4. SQL 数据库中如何自动生成订单号
SQL server中可以用sequence来实现订单号的自动生成。
例如创建如下序列:
create sequence orderSeq
as bigint --数据类型
start with 100000 --开始值
increment by 1 --增量
minvalue 1 --最小值
maxvalue 1000000--最大值
no cycle --不循环
cache 3 --设置cache大小为3
这样订单号就会从100000开始每次自增1生成。