sql语句自动编号
两种方法:
1、用Truncate
TRUNCATETABLEname可以删除表内所庆帆有值并重置标识值
2、用DBCCCHECKIDENT
DBCCCHECKIDENT('table_name',RESEED,new_reseed_value)如dbcccheckident("bc_pos",reseed,1)即可,
但如果表内有数据,则重设的值如果小于最大值可能会有问题,这时可以用dbcccheckident("bc_pos",reseed)即可自动重设值。
注意:
只能为不允许空值且数据类型为decimal、int、numeric、smallint、bigint或tinyint的判念列设置标识属性。此外,不能为主键列设置标识属性。
(1)sql语句自动编号扩展阅读:
关于上述标识列的引用
如果在SQL语句中引用标识列,可用关键字IDENTITYCOL代替,例如,若要查询上例中ID等于1的行,
以下两条查询语句誉冲雹是等价的:
1、SELECT*FROMT_testWHEREIDENTITYCOL=1
2、SELECT*FROMT_testWHERE
❷ 使用SQL语句向表插入一条学生记录:(其中学号的值为自动编号)如何实现
insert into 表名(字段名逗号隔开(不用写自动增长谈郑友那列)) values(对应的值也是逗号隔开)
要是每个字段都要插入那就可以写成
insert into 表名 values(顺序写值,每个字段都要写(不包括自动增长列))
into可以省略不写
insert into语句可以有两种编写形式:
1、无需指定要插入数据丛游的列名,只需提供被插入的值即可:
insert into table_name
values (value1,value2,value3,...);
2、需要指定列名及被插入的值:
insert into table_name (column1,column2,column3,...)
values (value1,value2,value3,...);
(2)sql语句自动编号扩展阅读
SQL常用语句
查所有数据库 show databases;
创建数据库 create database db1;
查看数据库 show create database db1;
创建数据库指定字符集 create database db1 character set utf8/gbk
删除数据库 drop database db1;
使用数据库 use db1;
创建表 create table t1(id int,name varchar(10));
查看所含槐有表 show tables;
查看单个表属性 show create table t1;
查看表字段 desc t1;
创建表指定引擎和字符集 create table t1(id int,name varchar(10)) engine=myisam/innodb charset=utf8/gbk;
❸ SQL 自定义的自动编号求助
查询时加序号
a:没有主键的情形:
Select identity(int,1,1) as iid,* into #tmp from TableName
Select * from #tmp
Drop table #tmp
b:有主键的情形:
Select (Select sum(1) from TableName where KeyField <= a.KeyField) as iid,* from TableName a
eg:
select (select sum(1) from user_Admin where id<=a.id) as ID,id,displayName from user_Admin a order by a.ID asc
结果:
------------------------------------------------------------
USE 北风贸易;
GO
/* 方法一*/
SELECT 序号= (SELECT COUNT(客户编号) FROM 客户 AS LiMing
WHERE LiMing.客户编号<= Chang.客户编号),
客户编号, 公司名称
FROM 客户 AS Chang ORDER BY 1;
GO
/* 方法二: 使用SQL Server 2005 独有的RANK() OVER () 语法*/
SELECT RANK() OVER (ORDER BY 客户编号 DESC) AS 序号,
客户编号, 公司名称
FROM 客户;
GO
/* 方法三*/
SELECT 序号= COUNT(*), LiMing.客户编号, LiMing.公司名称
FROM 客户 AS LiMing, 客户AS Chang
WHERE LiMing.客户编号>= Chang.客户编号
GROUP BY LiMing.客户编号, LiMing.公司名称
ORDER BY 序号;
GO
/* 方法四
建立一个“自动编号”的字段,然后将数据新增至一个区域性暂存数据表,
然后由该区域性暂存数据表中,将数据选取出来,最后删除该区域性暂存数据表
*/
SELECT 序号= IDENTITY(INT,1,1), 管道, 程序语言, 讲师, 资历
INTO #LiMing
FROM 问券调查一;
GO
SELECT * FROM #LiMing;
GO
DROP TABLE #LiMing;
GO
/*
方法五
使用 SQL Server 2005 独有的ROW_NUMBER() OVER () 语法
搭配 CTE (一般数据表表达式,就是 WITH 那段语法)选取序号2 ~ 4 的数据
*/
WITH 排序后的图书 AS
(SELECT ROW_NUMBER() OVER (ORDER BY 客户编号 DESC) AS 序号,
客户编号, 公司名称
FROM 客户)
SELECT * FROM 排序后的图书
WHERE 序号 BETWEEN 2 AND 4;
GO
------------分页使用---------------------------
SELECT RANK() OVER (ORDER BY id asc) AS no,* into #temp
FROM Bbs_reply select * from #temp where no between 1 and 100 drop table #temp
❹ sql 查询语句自动增加序号
.使用临时表实现
SQL的IDENTITY函数可以提供自增的序号,但只能用在带有INTO table子句的SELECT语句中,所以如果可以使用临时表的情况下可以使用这种实现方法。
eg:
SELECT IDENTITY(INT,1,1) as seq,field1,field2,...,fieldn INTO tmpTableName FROM srcTableName;
SELECT * FROM tmpTableName;
DROP TABLE tmpTableName;
❺ 如何在SQL中设置自动编号
在数据库管理系统中(sql server)中,使用设计表,把标识改成'是'
通过语句
create table aaa
(id int IDENTITY(1,1) not null,
a char(10)
)
❻ sql server 2008怎么自动编号
注意:只能为不允许空值且数据类型为 decimal、int、numeric、smallint、bigint 或 tinyint 的列设置标识属性。此外,不能为主键列设置标识属性。
一。通过SQL管理工具修改列的标识属性
1.在对象资源管理器中,右键单击要更改其数据类型的列所在的表,再单击“修改”。此时,将在表设计器中打开该表。
2.清除要更改的列的“允许空”复选框。
3.在“列属性”选项卡中,展开“标识规范”属性。
4.单击“是标识”子属性的网格单元格,然后从下拉列表中选择“是”。
5.在“标识种子”单元格中键入值。此值将赋给表中的第一行。默认情况下将赋值 1。
6.在“标识增量”单元格中键入值。此值是基于“标识种子”依次为每个后续行增加的增量。默认情况下将赋值 1。
二。SQL语句来创建
创建表时指定自动编号的字段
CREATE TABLE [dbo].[UserInfor](
[UserID] [int] IDENTITY(100,2) NOT NULL, --此处可指定开始值及每次增长步长
[UserName] [nchar](10) NOT NULL, )
❼ sql 语句 对同组数据自动编号
不知道你用的是什么数据库,ORACLE 8i 后版本可以用函数实现
先假设你的表名为 T ,栏位为 num
语句如枯桥含下:消培
select row_number() over(order by num asc) 序号没笑,num from t
❽ 创建自动编号字段的sql语句怎么写
第一种方式:创建table的时候直接创建一个自增长的标识列,以这个标识列为编号;
第二种方式:查询table的时候自动生成排知档序编睁戚号,可悉猛陵以使用row_number()
over(),比如
SELECT
*,
Row_Number()
OVER
(partition
by
deptid
ORDER
BY
salary
desc)
rank
FROM
employee
❾ 关于SQL自动编号
在企业管理器中建表:
用企业管理器打开表后选择修改字段→把下面字段属性的【标识】选项选择为【是】→如果需要定义【初始值(标识种子)】和【每次递增值(标识递增量)】的话定义一下就可以了
直接用sql建表
create
table
表名(
字段名1
int
identity(1,1)
--这是从【一】开始每次自动加【一】的自动编号
字段名2
int
identity(1,2)
--这是从【一】开始每次自动加【二】的自动编号
字段名3
int
identity(2,2)
--这是从【二】开始每次自动加【二】的自动编号
)
---
以上,希望对你有所帮助。