Sql--IDENTITY()自动增长列

CREATE TABLE  Tables(
    [SID] [numeric](12, 0) IDENTITY(1,1) NOT NULL,
    [UpdateTime] [datetime] NOT NULL,
 CONSTRAINT [PK_Tables] PRIMARY KEY (SID  ASC)
)  

使用该语句create一个表用于保存一个ID。

declare  @myseq numeric(12)
insert into Tables (UpdateTime) values(getdate())
set @myseq = scope_identity()
delete from Tables where sid=@myseq
 select @myseq

每次执行完在删除 近保存ID 又能不占用数据库空间

至于 scope_identity() 返回主键的值

时间: 2024-08-01 02:41:05

Sql--IDENTITY()自动增长列的相关文章

SQL Server 2012 自动增长列,值跳跃问题

介绍 从 SQL Server 2012 版本开始, 当SQL Server 实例重启之后,表格的自动增长列的值会发生跳跃,而具体的跳跃值的大小是根据增长列的数据类型而定的.如果数据类型是 整型(int),那么跳跃值为 1000:如果数据类型为 长整型(bigint),那么跳跃值为 10000.从我们的项目来看,这种跳跃问题是不能被接受的,尤其是展示在客户端的时候.这个奇怪的问题只在 SQL Server 2012 及更高的版本中存在,SQL Server 2012之前版本不存在此问题. 背景

使用sql语句创建修改SQL Server标识列(即自动增长列)

一.标识列的定义以及特点SQL Server中的标识列又称标识符列,习惯上又叫自增列.该种列具有以下三种特点:1.列的数据类型为不带小数的数值类型2.在进行插入(Insert)操作时,该列的值是由系统按一定规律生成,不允许空值3.列值不重复,具有标识表中每一行的作用,每个表只能有一个标识列.由于以上特点,使得标识列在数据库的设计中得到广泛的使用.二.标识列的组成创建一个标识列,通常要指定三个内容:1.类型(type)在SQL Server 2000中,标识列类型必须是数值类型,如下:decima

SQL获取刚插入的记录的自动增长列ID的值

假设表结构如下: CREATE TABLE TestTable ( id int identity, CreatedDate datetime ) SQL2005获得新增行的自动增长列的语句如下: insert into TestTable (CreatedDate)  output  inserted.id  values (getdate()) SQL2000获得新增行的自动增长列的语句如下: insert into TestTable (CreatedDate)  values (getd

SQL SERVER 中在自动增长列中插入值

如果想在自动增长列中插入值,如果没有设置 IDENTITY_INSERT 为 ON 的话会出现如下错误 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'dbo.table' 中的标识列插入显式值. 解决问题的办法是: SET IDENTITY_INSERT [TableName] ON 在插入完成以后可以通过: SET IDENTITY_INSERT [TableName] OFF 关闭 IDENTITY_INSERT

解决SQLServer服务器重启后自动增长列倍增问题

我在使用 SQL Server 2012 时出现了自动增长列从1 2 3变成1001 1002 1003的情况,网上找了下发现说是微软故意这么弄的,要想不倍增可使用以下方法: 1.打开配置管理器(SQL Server Configuration Manager)开始-Microsoft SQL Server 2012-配置工具-SQL Server 配置管理器 2.选择你需要使用的服务器 3.点击属性 4.添加 -t272 参数,是小写,确定 5.重新启动,PS:重新启动的第一次添加还是会倍增,

SQLite Expert 删除表数据并重置自动增长列

用下面的语句肯定是行不通的,语句不支持 truncate table t_Records 方法:1.删除表数据 delete from t_Records where 1==1 2.重置自动增长列 update sqlite_sequence set seq=0 where name='t_Records' /*name :是表名*/ SQLite Expert软件网址:  http://www.sqliteexpert.com/

SQL Server自增长列插入指定值 -- SET IDENTITY_INSERT ON|OFF(转)

想要将值插入到自动编号(或者说是标识列,IDENTITY)中去,需要设定 SET IDENTITY_INSERT 示例: 1.首先建立一个有标识列的表:CREATE TABLE products (id int IDENTITY PRIMARY KEY, product varchar(40)) 2.尝试在表中做以下操作:INSERT INTO products (id, product) VALUES(3, 'garden shovel') 结果会导致错误:“当 IDENTITY_INSERT

SQL Server 自动增长过大

一.背景 我们遇到的问题如下图所示:自动增长无端端就按照这样的比例进行增长: (Figure1:问题所在) 尝试使用SSMS修改自动增长值,就会出现下面的错误: (Figure2:错误信息) 遇到上面的问题,我们需要解决两个问题: 1. 把数据文件收缩到一定范围内的值,腾出磁盘空间: 2. 重新设置自动增长的值,可以按照百分比,也可以使用指定的空间大小,我个人倾向使用n*1024M这样的值,仅供参考: 3. 如果有需要你也可以进行日志文件的收缩: 二.解决过程 1. 使用下面的脚本修改自动增长的

mysql 更改自动增长列的初始值

alter table t_Myxiao7 AUTO_INCREMENT 3;   -- 从三开始 ITOKIT.COM提示:如果表中数据没有用.如果直接删除数据,自动增长ID还是不会从1开始的,可以利用“清空数据表”.这样自动增长ID也将会从1开始.

Oracle数据库自动增长列的实现过程

1.创建序列 -- Create sequence create sequence INNERID minvalue 1 maxvalue 99999999999999 start with 1 increment by 1 cache 20 order; 2.--INNERID.currval 指当前序列 --INNERID.nextval 指下一个序列 insert into admin values (INNERID.nextval,'a'); insert into admin valu