SQL-Serverの自動採番(IDENTITY値)の取得・リセット
システムに必要なテーブルで、自動的に番号を振っていくものが必要なときがあります。 たとえば、各種の伝票データの伝票番号の様なものです。
プログラム処理上、データを登録した直後に、自動採番された値を取得し何かに使いたいことがよくあります。
SQL-Serverでは現在の自動採番の値を取得する方法が用意されています。
取敢えず自動採番を行える簡単なテーブルの例を示します。(前回ストアド・ファンクションで使用したテーブルに細工します。)
- CREATE TABLE [dbo].[TABLE_B](
- [ID] [int] IDENTITY(1,1) NOT NULL,
- [DATA1] [nvarchar](50) COLLATE Japanese_CI_AS NULL,
- [DATA2] [nvarchar](50) COLLATE Japanese_CI_AS NULL,
- CONSTRAINT [PKEY_TW_MAG_ADDR] PRIMARY KEY CLUSTERED
- (
- [ID] ASC
- )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
- ) ON [PRIMARY]
まず、テストテーブルBに1件データを挿入します。 「ID」は自動採番の設定なので登録する値は設定しません。
- INSERT INTO TABLE_B (DATA1, DATA2)
- VALUES('A0001', 'B0001')
■自動採番された値を取得
この直後に、設定された「ID」値を取得するには以下のSELECT文を実行します。
- SELECT IDENT_CURRENT('TABLE_B') AS LASTID
結果として「1」という値が返されます。
■自動採番された値をリセット
デバッグ途中でテーブルのデータを全て削除して、さらに自動採番が「1」からにしたい場合はよくあります。 そのときに以下の命令をクエリアナライザ等で実行します。
- DBCC CHECKIDENT('TABLE_B', RESEED, 0)
自動採番の値を「0」にする命令ですが、実際INSERT実行時には+1された値が「ID」に設定されます。
SQL-Serverの自動採番(IDENTITY値)の取得・リセット的更多相关文章
- Part 4 Identity Column in SQL Server
Identity Column in SQL Server If a column is marked as an identity column, then the values for this ...
- SQL SERVER 中identity用法
在数据库中, 常用的一个流水编号通常会使用 identity 栏位来进行设置, 这种编号的好处是一定不会重覆, 而且一定是唯一的, 这对table中的唯一值特性很重要, 通常用来做客户编号, 订单编号 ...
- SQL Server 序列(SEQUENCE)使用
众所周知,在之前的SQL SERVER版本中,一般采用GUID或者IDENTITY来作为标示符,但是IDENTITY是一个表对象,只能保证在一张表里面的序列,当我们遇到以下情况时, 如上表,我们需要在 ...
- Microsoft SQL Server Trace Flags
Complete list of Microsoft SQL Server trace flags (585 trace flags) REMEMBER: Be extremely careful w ...
- Oracle 和SQL Server 中的SQL语句使用区别
最近开始接触Oracle,想要了解下同SQL Server使用时的区别.搜寻网上信息找到具体区别分类如下: 一.数据类型比较 类型名称 Oracle SQLServer 比较 字符数据类型 CHA ...
- SQL Server 2016 的「動態資料遮罩 (Dynamic Data Masking)」
一些特別注重資訊安全.個人資料的公司或產業 (如: 金融.保險業),通常「測試用資料庫」的資料,會加上「遮蔽:去識別化」的功能,避免個資外洩.以往必須自己撰寫 SQL 語句或 Stored Proce ...
- SQL Server 合并复制遇到identity range check报错的解决
最近帮一个客户搭建跨洋的合并复制,由于数据库非常大,跨洋网络条件不稳定,因此只能通过备份初始化,在初始化完成后向海外订阅端插入数据时发现报出如下错误: Msg 548, Level 16, S ...
- Reset Identity Column Value in SQL Server (Identity Reset)
前言:今天在群里看到有人在问SQL Server自增值重置问题(sqlserver identiy column value reset ) 闲话少说,直接上代码: 正文: --create tabl ...
- Sql Server插入数据并返回自增ID,@@IDENTITY,SCOPE_IDENTITY和IDENT_CURRENT的区别
预备知识:SQLServer的IDENTITY关键字IDENTITY关键字代表的是一个函数,而不是identity属性.在access里边没有这个函数,所以在access不能用这个语句.语法:iden ...
随机推荐
- js常用遍历汇总
1, for(let i of Array) for( let i of arr){ console.log(i); } ES6新增的,i代表每次循环Array的值,相当于Array[0]到Array ...
- 【React自制全家桶】四、React中state与props的分析与比较
一.state 1.state的作用 state是React中组件的一个对象.React把用户界面当做是状态机,想象它有不同的状态然后渲染这些状态,可以轻松让用户界面与数据保持一致. React中,更 ...
- DBCP连接池参数解释
1.<!-- 数据源1 --> 2. <bean id="dataSource" 3. class="org.apache.commons.dbcp.B ...
- tensorflow二进制文件读取与tfrecords文件读取
1.知识点 """ TFRecords介绍: TFRecords是Tensorflow设计的一种内置文件格式,是一种二进制文件,它能更好的利用内存, 更方便复制和移动,为 ...
- shell中变量计算
year=44 1.let,不需要$引用变量 let m=year+3 echo $m 2.(()) m=$((year+3)) 3.[ ],注意两边一定要有空格 m=$[ year+3 ] 4. ...
- SD相关号码范围IMG设定
一.定义项目建议的号码范围——OVZA.VN01 二.免费货物的号码范围——WC07 三.定义销售文件的号码范围——VN01 四.金额契约产品建议模组的号码范围——WSN1 五.定义出口.进口的号码范 ...
- Nmap扫描二级目录
nmap --script http-enum -p80 192.168.2.100 //namp扫描2级目录
- C#编程 socket编程之tcp服务器端和客户端
基于Tcp协议的Socket通讯类似于B/S架构,面向连接,但不同的是服务器端可以向客户端主动推送消息. 使用Tcp协议通讯需要具备以下几个条件: (1).建立一个套接字(Socket) (2).绑定 ...
- 【LeetCode】15、三数之和为0
题目等级:3Sum(Medium) 题目描述: Given an array nums of n integers, are there elements a, b, c in nums such t ...
- 简洁易懂说VLAN
简洁易懂说VLAN 1. VLAN概述 虚拟局域网(Virtual Local Area Network,VLAN),VLAN最主要的作用是分割局域网中广播域.传统交换机组成的LAN中,往往包含了成千 ...