如何在数据库查询时多一列自增列

如何在数据库查询时多一列自增列,第1张

select identity(int ,1,1) as id,a,b,c,d into #tmp from mytable where

得到的#tmp临时表中就包括mytable的列,以及一个自增长的列 ID

sql server建表时设置ID字段自增的方法有两种:

1 、在SQL Server Management Studio中实现SQL Server自增字段

打开SQL Server Management Studio,打开数据库之后,在选中的表上点“修改”,在选中需要设置为自增的字段,在右下方的表设计器里选择“标识规范”,选“是”,就设定即可。

也可以在表的属性窗口中设置设置标识列:

2、使用SQL语句在程序或者查询分析器里面实现SQL Server自增字段

sql server 设置自增字段identity属性 (以新建数据表tablename中的id字段为例)

create table tablename

(

id int identity(1,1) //identity表示自增列的意思,而int identity(1,1)表示从1开始递增,每次自增1。

)

这样设置之后,tablename数据表中的id字段就是自增列。

如果想实现带前缀或者后缀的自动增加字段,不能用varchar,还是使用上面的方法创建字段,但是在读取的时候用增加前后缀的形式来显示想要的效果,例如如果希望得出结果是a001可以这么做select 'a'+convert(varchar(20),id) from tablename,这里的tablename是刚才建立的具体的表明。

表空间是有数据文件组成的,所以看表空间是否自增即看数据文件,如下查自增的表空间:

select tablespace_name,file_name,autoextensible from dba_data_files where autoextensible='YES';

autoextensible: YES/NO 即表示是否自增。

如果你是要在建表中就转化的话可以用楼上的就可以了,如果你要是想要基于表中建的话可以这样

create table a(id int identity primary key not null,name varchar(30))

alter table a add code varchar(30)

update a set code=bcode from a,(select id,ltrim('bh'+replace(CONVERT(varchar(30),STR(id,5,0)),' ','0'))as code from a)as b where aid=bid

结果:

id name code

1 张三 bh00001

2 张三 bh00002

3 张三 bh00003

4 张三 bh00004

5 张三 bh00005

6 张三 bh00006

7 张三 bh00007

8 张三 bh00008

9 张三 bh00009

10 张三 bh00010

11 张三 bh00011

12 张三 bh00012

13 张三 bh00013

14 张三 bh00014

15 张三 bh00015

16 张三 bh00016

很多时候我们需要重置某个表的自增列,让自增列重新从1开始记数。最蠢的方法当然是把该表删掉再重新建表了。其实,还有其它的方法可以重置自增列的值:

方法一:使用TRUNCATE TABLE语句:

TRUNCATE TABLE删除表中的所有行,而不记录单个行删除 *** 作,同时重置自增列。TRUNCATE TABLE 在功能上与没有WHERE子句的DELETE语句相同;但是,TRUNCATE TABLE 速度更快,使用的系统资源和事务日志资源更少。

方法二:使用DBCC CHECKIDENT语句:

DBCC CHECKIDENT在 SQL Server 2008 R2 中检查指定表的当前标识值,如有必要,则更改标识值。还可以使用 DBCC CHECKIDENT 为标识列手动设置新的当前标识值。

语法:

DBCC CHECKIDENT

(

table_name

[, { NORESEED | { RESEED [,new_reseed_value ] } } ]

)

[ WITH NO_INFOMSGS ]

参数:

table_name:是要对其当前标识值进行检查的表名。指定的表必须包含标识列。表名必须符合标识符规则。

NORESEED:指定不应更改当前标识值。

RESEED:指定应该更改当前标识值。

new_reseed_value:用作标识列的当前值的新值。

WITH NO_INFOMSGS:取消显示所有信息性消息。

示例:我们要重置表t1的当前标识值为1,sql如下:

dbcc checkident('t1',reseed,1)

看你的表没有适合做自增的列呀?

另外科普一下别再叫这个是DOS命令了。一眼被看出是门外汉。至少要交SQL语句。

你这个是DDL语句

SQL语句分类

SQL语句主要可以划分为以下3个类别

DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象。常用的语句关键字主要包括create、drop、alter等。

DML(Data Manipulation Languages)语句:数据 *** 纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性。常用的语句关键字主要包括insert、delete、update和select等。

DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句,这些语句定义了数据库、表、字段、用户的访问权限和安全级别,主要的语句关键字包括grant、revoke等。

关于自增长主键关键字是AUTO_INCREMENT,在定义时加上就ok了

先加个id吧

/添加id/

alter table `Student``id` add column `id` int(11) NULL;

/设置自增/

alter table `Student``id` change `id` `id` int(11) NOT NULL AUTO_INCREMENT, add primary key(`id`);

/创建表时定义/

CREATE TABLE `test` (                    

          `id` int(11) NOT NULL AUTO_INCREMENT,  

          `name` varchar(100) DEFAULT NULL,      

          UNIQUE KEY `id` (`id`)                 

        )

以数据库为例。可以用如下方法:

1、先建表:

createtabletest

(idintnotnull,namevarchar(10))

2、在图形界面,找到test表:

3、右键此表名,选择“设计”。

4、右侧出现的页面,找到要设置主键的列,ID列,然后右键,选择“设置主键”。

5、下面一步是要设置自增,在左侧列表中,右键“id列”,然后选择“属性”。

6、其中,找到“标识规范”,标识增量为每次增加多少,标识种子代表起始数值大小。

一、通过T-SQL代码

代码如下:

alter table 表名 add 列名 int IDENTITY(1,1) NOT NULL

这里用到了identity关键字:indentity(a,b),a b均为正整数,a表示开始数,b表示步长,indentity(1,1)就代表从1开始,每次增加1

二、通过企业管理器

打开对象资源管理器,新建表,如下图

插入列,设置列属性,标识增量为步长,标识种子为开始数,如下图

以上就是关于如何在数据库查询时多一列自增列全部的内容,包括:如何在数据库查询时多一列自增列、sql server建表时怎么设置ID字段自增、ado.net怎么知道oracle数据库表自增列是哪一列等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9810178.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存