【SQL】找出行数与自增标识值不相等的表(即有缺行)
环境:mssql ent 2k8 r2
原理:遍历所有含自增列的用户表,用sp_spaceused过程分别获取每张表的行数并写入临时表,然后使用IDENT_CURRENT函数获取表的最大标识值,比较二者并返回结果
IF OBJECT_ID('tempdb..#TableRowCount','U') IS NOT NULL DROP TABLE #TableRowCount GO CREATE TABLE #TableRowCount (Name sysname PRIMARY KEY, RowCnt DECIMAL(11,0), Reserved VARCHAR(18), Data VARCHAR(18), Index_Size VARCHAR(18), Unused VARCHAR(18)) GO DECLARE curCntAllTableRows CURSOR LOCAL FAST_FORWARD FORSELECT name FROM sys.tables WHERE OBJECTPROPERTY(object_id,'TableHasIdentity')=1 OPEN curCntAllTableRows DECLARE @TableName sysname FETCH NEXT FROM curCntAllTableRows INTO @TableName WHILE @@FETCH_STATUS=0 BEGININSERT INTO #TableRowCount EXEC sys.sp_spaceused @TableNameFETCH NEXT FROM curCntAllTableRows INTO @TableName END CLOSE curCntAllTableRows DEALLOCATE curCntAllTableRows/*由于IDENT_CURRENT对于空表也会返回1,所以做特别处理*/ WITH cteA AS ( SELECT Name,RowCnt,CASE IDENT_CURRENT(Name) WHEN 1 THEN RowCnt ELSE IDENT_CURRENT(Name) END AS 'CurrID' FROM #TableRowCount ) SELECT Name,RowCnt,CurrID FROM cteA WHERE RowCnt<>CurrID
文毕。
转载于:https://www.cnblogs.com/ahdung/p/3535808.html
【SQL】找出行数与自增标识值不相等的表(即有缺行)相关推荐
- SQL Server中如何取得刚插入的标识值
数据库实际应用中,我们往往需要得到刚刚插入 的标志值来往相关表中写入数据.但我们平常得到的真的是我们需要的那个值么? 有时我们会使用 SELECT @@Identity 来获得我们刚刚插入的值,比如下 ...
- 数据库 MySQL 如何设置表的主键自增起始值
文章目录 表已有数据,truncate 之后再设置 auto_increment,可行 表已有数据,delete from 之后再设置 auto_increment,可行 主键自增起始值重置 查询表名 ...
- sql获取受影响行数、插入标识值
@@ROWCOUNT--受影响行数 @@IDENTITY 和 SCOPE_IDENTITY 可以返回当前会话中的所有表中生成的最后一个标识值.但是,SCOPE_IDENTITY 只在当前作用域内返回值 ...
- 找异数java_小米19秋招java开发~ 分享笔试题希望春招有好运
1.一个作业系统中有4台打印机,每个作业需要独占2台打印机才能完成,则该系统最多可以同时执行多少作业而保证不会死锁?(A) A. 3 B. 1 C. 2 D. 4 2.假设一个无向图中包含12个顶点, ...
- sql 非主键每年自增_或许你不知道的 10 条 SQL 技巧
上文我们简述了 SQL 的一些进阶技巧,一些朋友觉得不过瘾,我们继续来下篇,再送你 10 个技巧 一. 使用延迟查询优化 limit [offset], [rows] 经常出现类似以下的 SQL 语句 ...
- python对excel增删改查语句_利用python模拟sql语句对员工表格进行增删改查
本文主要给大家介绍了关于python模拟sql语句对员工表格进行增删改查的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 具体需求: 员工信息表程序,实现增删改查操作: 可进行模糊查询, ...
- python对excel增删改查_利用python模拟sql语句对员工表格进行增删改查
本文主要给大家介绍了关于python模拟sql语句对员工表格进行增删改查的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 具体需求: 员工信息表程序,实现增删改查操作: 可进行模糊查询, ...
- python找完数 pta_PTA——完全数
PTA 7-45 找完数 网友"云上明月"的程序: #include int isPerfect(int num); int main() { int i,j,m,n,exist= ...
- SQL server 中的插入表行数据,以及插入标识值
语法介绍 (1)在SQL server数据库中我们如何添加新的行,并且添加数据呢? Insert:该语句向表中添加新行 values: 要插入的值 语法如下: Insert into 模式.表名(字段 ...
最新文章
- Cocoa 框架 For iOS(一) 框架的介绍,Objectivie-C运行时能力的解析等 (转载)
- numpy delete
- 输入矩阵包含 nan 或 inf_荣耀 V30 PRO 采用超感光电影相机矩阵
- HTML5 新特征之Canvas基础
- 晚上运动对身体好吗?
- python计算工资编程-当财务部的人会编程,会发生什么?Python实现自动化群发工资条...
- c语言创建空顺序表的程序,用C语言编写一个完整的程序,实现顺序表的建立、插入、删除、输出等基本运算。...
- 使用socket方式连接Nginx优化php-fpm性能
- 软件基本功:数组赋值,一定要对齐
- 有哪些好用的云盘软件?2022不限速云盘网盘推荐
- mysql错误代码1064_如何解决mysql错误代码1064
- 可视化开发平台的内容介绍
- 2020 年第一届辽宁省大学生程序设计竞赛
- 长治机电职业技术学院计算机系,山西机电职业技术学院
- 你了解HTTP2协议吗?(二)
- 如何利用计算机班级成绩分析,计算机二级excel真题:制作期末成绩分析表
- 数字趣解-不可思议的《魔兽世界》
- 恶习为什么难戒?因为你在HALT状态
- 支付宝手机网页支付接口调用
- 今天的日子只属于你!