当前位置:首页 » 编程语言 » sql自动编号类型

sql自动编号类型

发布时间: 2023-03-01 10:58:30

A. 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

B. 关于SQL自动编号

在企业管理器中建表:
用企业管理器打开表后选择修改字段→把下面字段属性的【标识】选项选择为【是】→如果需要定义【初始值(标识种子)】和【每次递增值(标识递增量)】的话定义一下就可以了
直接用sql建表
create
table
表名(
字段名1
int
identity(1,1)
--这是从【一】开始每次自动加【一】的自动编号
字段名2
int
identity(1,2)
--这是从【一】开始每次自动加【二】的自动编号
字段名3
int
identity(2,2)
--这是从【二】开始每次自动加【二】的自动编号
)
---
以上,希望对你有所帮助。

C. 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 的列设置标识属性。此外,不能为主键列设置标识属性。

(3)sql自动编号类型扩展阅读:

关于上述标识列的引用

如果在SQL语句中引用标识列,可用关键字IDENTITYCOL代替,例如,若要查询上例中ID等于1的行,

以下两条查询语句是等价的:

1、SELECT * FROM T_test WHERE IDENTITYCOL=1

2、SELECT * FROM T_test WHERE

热点内容
方块方舟如何架设服务器 发布:2024-11-07 13:08:37 浏览:366
什么5v5安卓和苹果都可以联机 发布:2024-11-07 13:03:03 浏览:772
数字证书连接不上服务器地址 发布:2024-11-07 13:00:50 浏览:915
mysql导出数据库结构 发布:2024-11-07 13:00:49 浏览:467
360如何清除缓存 发布:2024-11-07 12:59:38 浏览:497
ftp服务器c语言 发布:2024-11-07 12:45:15 浏览:97
delphijava 发布:2024-11-07 12:40:35 浏览:465
sqlserver查询数据 发布:2024-11-07 12:40:28 浏览:7
javaj2ee 发布:2024-11-07 12:26:17 浏览:788
hmcl服务器地址怎么写 发布:2024-11-07 12:26:10 浏览:543