当前位置:首页 » 编程语言 » sql创建自动编号
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql创建自动编号

发布时间: 2022-08-06 18:25:45

A. 用sql怎么创建能够生成自动编号的表

在自动编号列进行如下设置在设计模式选中自动编号列在列属性哪儿有个标识规范,选中是就行

B. mysql怎么设置自动编号呢

1、单击“保存更改”按钮。

C. 如何在SQL中设置自动编号

  1. 数据库管理系统中(sql server)中,使用设计表,把标识改成'是'

  2. 通过语句

    create table aaa

    (id int IDENTITY(1,1) not null,

    a char(10)

    )

D. 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, )

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

(5)sql创建自动编号扩展阅读:

关于上述标识列的引用

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

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

1、SELECT * FROM T_test WHERE IDENTITYCOL=1

2、SELECT * FROM T_test WHERE

F. sql数据库建表时如何实现自动编号

可以有两种办法啦:1.在企业管理器里面建:这种方法很简单点击选中的数据库右键新建即可相信你应该会不多说了。2.在查询分析器里建:基本思路要建表,表是要在库里建的所以你要先引用你要使用的数据库加进来再开始建表,以下为一个简单实例;create
database
student
--创建一个student数据库由于这里主要说建表所以建一个简单的数据库use
student
--引用数据库studentcreate
table
test(
--创建一个test表name
varchar(20)
primary
key
indentity(1,1),--列名(字段名)
数据类型
在此加主键约束就不用加非空约束
再加上自动增长列(含义从1开始增长增长量是1)password
varchar(10)
not
null
--注意建表最后一个字段名时结尾不要加逗号否则会出错)

G. sql数据库的主键自动编号怎么弄的啊

1.
首先删除主键,
然后重新创建主键,
重新创建主键的时候,
需要说明本主键是使用
非聚集索引
primary
key
nonclustered
(
sno
)
2.
a:
pad_index
=
{
on
|
off
}
指定索引填充。默认值为
off。
on
fillfactor
指定的可用空间百分比应用于索引的中间级页。
off
或不指定
fillfactor
考虑到中间级页上的键集,将中间级页填充到接近其容量的程度,以留出足够的空间,使之至少能够容纳索引的最大的一行。
b:
fillfactor
=fillfactor
指定一个百分比,指示在创建或重新生成索引期间,数据库引擎对各索引页的叶级填充的程度。fillfactor
必须为介于
1

100
之间的整数值。默认值为
0。如果
fillfactor

100

0,则数据库引擎将创建完全填充叶级页的索引。
c:
ignore_p_key
=
{
on
|
off
}
指定在插入操作尝试向唯一索引插入重复键值时的错误响应。ignore_p_key
选项仅适用于创建或重新生成索引后发生的插入操作。当执行
create
index、alter
index

update
时,该选项无效。默认值为
off。
on
向唯一索引插入重复键值时将出现警告消息。只有违反唯一性约束的行才会失败。
off
向唯一索引插入重复键值时将出现错误消息。整个
insert
操作将被回滚。
d:
statistics_norecompute
=
{
on
|
off}
指定是否重新计算分发统计信息。默认值为
off。
on
不会自动重新计算过时的统计信息。
off
启用统计信息自动更新功能。
若要恢复统计信息自动更新,请将
statistics_norecompute
设置为
off,或执行
update
statistics
但不包含
norecompute
子句。
e:
on
[primary]
是指
索引创建在
primary
这个文件组上。
3、
以全国的身份证为例子:
对于
身份证号码,
有个
“唯一”
的索引
而对于
姓名,
有个
“不唯一”
的索引。
“不唯一”
的索引

虽然不能定位到唯一的某一行,
但是可以缩小范围。定位到某些行。
4.
聚集索引
clustered
创建索引时,键值的逻辑顺序决定表中对应行的物理顺序。聚集索引的底层(或称叶级别)包含该表的实际数据行。一个表或视图只允许同时有一个聚集索引。

H. 如何用SQL自动生成序号和分序号

需要用row_number来给分组添加序号。

1、创建测试表,插入数据:

createtabletest(sidint,snamevarchar(20),sclassvarchar(20),scoreint);insertintotestvalues(1,'张三','一年一班',100)insertintotestvalues(2,'李四','一年一班',78)insertintotestvalues(3,'王五','一年一班',67)insertintotestvalues(4,'赵六','一年一班',87)insertintotestvalues(5,'badkano','一年二班',98)insertintotestvalues(6,'网络知道团长','一年二班',99)insertintotestvalues(7,'小小动','一年二班',99)insertintotestvalues(8,'刘备','一年三班',56)insertintotestvalues(9,'张飞','一年三班',67)insertintotestvalues(10,'关羽','一年三班',76)

2、要求按照班级总分给出班级排名(即序号),执行语句:

selectrow_number()over(orderbyscoredesc)排名,sclass班级,score总分from(selectsclass,SUM(score)scorefromtestgroupbysclass)t

3、查询结果:

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

J. sql 怎么设置自动编号列

insert into tb
select right('000000'+cast((count(*)+1) as varchar),7),**,**,…… from tb
或者
create table tb(id varchar(10),col varchar(10))
insert into tb select right('000000'+cast((count(*)+1) as varchar),7),'a' from tb
insert into tb select right('000000'+cast((count(*)+1) as varchar),7),'a' from tb
insert into tb select right('000000'+cast((count(*)+1) as varchar),7),'a' from tb
insert into tb select right('000000'+cast((count(*)+1) as varchar),7),'a' from tb
insert into tb select right('000000'+cast((count(*)+1) as varchar),7),'a' from tb
insert into tb select right('000000'+cast((count(*)+1) as varchar),7),'a' from tb
insert into tb select right('000000'+cast((count(*)+1) as varchar),7),'a' from tb

select * from tb
drop table tb

/*
id col
0000001 a
0000002 a
0000003 a
0000004 a
0000005 a
0000006 a
0000007 a
*/