SQL SERVER ->> IDENTITY相关函数

IDENTITY函数 -- 只能用在SELECT INTO语句中,用于在插入数据的时候模拟IDENTITY属性的作用生成自增长值。

SELECT IDENTITY(int, 1,1) AS ID_Num
INTO NewTable
FROM OldTable;  

IDENT_INCR 函数 -- 返回表的自动增长值,比如我们希望每次增长1,那这个函数就会返回1.

USE AdventureWorks2012;
GO
SELECT TABLE_SCHEMA, TABLE_NAME,
   IDENT_INCR(TABLE_SCHEMA + ‘.‘ + TABLE_NAME) AS IDENT_INCR
FROM INFORMATION_SCHEMA.TABLES
WHERE IDENT_INCR(TABLE_SCHEMA + ‘.‘ + TABLE_NAME) IS NOT NULL;  

IDENT_SEED 函数 -- 自动增长列的初始种子值

USE AdventureWorks2012;
GO
SELECT TABLE_SCHEMA, TABLE_NAME,
   IDENT_SEED(TABLE_SCHEMA + ‘.‘ + TABLE_NAME) AS IDENT_SEED
FROM INFORMATION_SCHEMA.TABLES
WHERE IDENT_SEED(TABLE_SCHEMA + ‘.‘ + TABLE_NAME) IS NOT NULL;
GO  

IDENT_CURRENT -- 表的IDENTITY列的当前自动增长值

USE AdventureWorks2012;
GO
SELECT TABLE_SCHEMA, TABLE_NAME,
   IDENT_CURRENT (TABLE_SCHEMA + ‘.‘ + TABLE_NAME) AS IDENT_SEED
FROM INFORMATION_SCHEMA.TABLES
WHERE IDENT_CURRENT (TABLE_SCHEMA + ‘.‘ + TABLE_NAME) IS NOT NULL;
GO  

SCOPE_IDENTITY() -- 当前模块内(存储过程)生成的最大自动增长值

@@IDENTITY -- 当前会话内生成的最大自动增长值

时间: 2024-10-21 19:31:44

SQL SERVER ->> IDENTITY相关函数的相关文章

Reset Identity Column Value in SQL Server (Identity Reset)

前言:今天在群里看到有人在问SQL Server自增值重置问题(sqlserver identiy column value reset ) 闲话少说,直接上代码: 正文: --create table --create test table if not exists(select * from sysobjects where name = 'Test_1') begin create table Test_1 (ID int identity(1,1) primary key,Name n

SQL Server identity种子

背景: 用identity修饰列可以使它自动增长 例了: create table T(ID int not null identity(1,1),      Data nvarchar(32)); 插入数据 declare @i as int =1;     while(@i<10)     begin           insert into T values(replicate(cast(@i as nchar(1)),10))           set @i = @i +1;   

iBatis自动生成的主键 (Oracle,MS Sql Server,MySQL)【转】

iBatis的sqlMap配置文件的selectKey元素有个type属性,可以指定pre或者post表示前生成(pre)还是后生成(post). Oracle设置 Xml代码   <!-- Oracle SEQUENCE --> <insert id="insertProduct-ORACLE" parameterClass="com.domain.Product"> <selectKey resultClass="int&

07 SQL Server中的Identity列(Identity Column in SQL Server)

如果创建新表的时候将一个列设置为Identity,那么在插入数据的时候可以不显示的指定值,SQL Server会自动填充该列的值. Create Table tblPerson1 ( PersonId Int Identity(1,1) Primary key Not Null, Name Nvarchar(50) null ) 此时,可用下面的代码向表中插入数据.虽然tblPerson表有两列,但在插入的时候只用指定Name的值即可,因为PersonId的属性为Identity,在插入数据时S

SQL Server 重置Identity标识列的值(INT爆了)(转载)

一.背景 SQL Server数据库中表A中Id字段的定义是:[Id] [int] IDENTITY(1,1),随着数据的不断增长,Id值已经接近2147483647(int的取值范围为:-2 147 483 648 到 2 147 483 647)了,虽然已经对旧数据进行归档,但是这个表需要保留最近的1亿数据,有什么方法解决Id值就快爆的问题呢? 解决上面的问题有两个办法:一个是修改表结构,把Id的int数据类型修改为bigint:第二个是重置Id(Identity标识列)的值,使它重新增长.

SQL Server Driver for PHP之sqlsrv相关函数

SQL Server Driver for PHP 包含以下函数: 函数 说明 sqlsrv_begin_transaction 开始事务. sqlsrv_cancel 取消语句:并放弃相应语句的所有未决结果. sqlsrv_client_info 提供有关客户端的信息. sqlsrv_close 关闭连接.释放与相应连接关联的所有资源. sqlsrv_commit 提交事务. sqlsrv_configure 更改错误处理和日志记录配置. sqlsrv_connect 创建一个连接,并将其打开

SQL Server 2012 案例教程(贾祥素)——学习笔记

第2章 SQL Server 2012概述 1.SQL(Structed Query Language),结构化查询语言. 2.SSMS(SQL Server Mangement Studio),SQL Server 2012的操作环境. 3.连接SQL Server之前应先启动SQL Server服务,即SQL Server(MSSQLSERVER): 方法1 开始--所有程序--Microsoft SQL Server 2012--配置工具--SQL Server配置管理器. 方法2 控制面

在一个SQL Server表中的多个列找出最大值

在一个SQL Server表中一行的多个列找出最大值 有时候我们需要从多个相同的列里(这些列的数据类型相同)找出最大的那个值,并显示 这里给出一个例子 IF (OBJECT_ID('tempdb..##TestTable') IS NOT NULL) DROP TABLE ##TestTable CREATE TABLE ##TestTable ( ID INT IDENTITY(1,1) PRIMARY KEY, Name NVARCHAR(40), UpdateByApp1Date DATE

SQL Server分区详解

一.SQL Server分区介绍 在SQL Server中,数据库的所有表和索引都视为已分区表和索引,默认这些表和索引值包含一个分区:也就是说表或索引至少包含一个分区.SQL Server中数据是按水平方式分区,是多行数据映射到单个分区.已经分区的表或者索引,在执行查询或者更新时,将被看作为单个逻辑实体,简单说来利用分区将一个表数据分多个表来存储,对于大数据量的表,将表分成多块查询,若只查询某个分区数据将降低消耗提高效率.需要注意的是单个索引或者表的分区必须位于一个数据库中. 在使用大量数据管理