查找数据库里所有表当前的最大id

今天要统计一下数据库里所有表当前的最大id,一个一个查太麻烦了,就写了一个存储过程,方便今后继续使用。

CREATE PROCEDURE [dbo].[get_tableid] AS

CREATE TABLE  #tablespaceinfo                         --创建结果存储表

(nameinfo varchar(50) ,

max_idinfo int )

DECLARE @tablename varchar(255)  --表名称

DECLARE @max_idinfo int

DECLARE Info_cursor CURSOR FOR

SELECT o.name

FROM dbo.sysobjects o WHERE OBJECTPROPERTY(o.id, N‘IsTable‘) = 1

and o.name not like N‘#%%‘  ORDER BY o.name

OPEN Info_cursor

FETCH NEXT FROM Info_cursor

INTO @tablename

WHILE @@FETCH_STATUS = 0

BEGIN

if exists (select * from dbo.sysobjects where id = object_id(@tablename) and OBJECTPROPERTY(id, N‘IsUserTable‘) = 1)

BEGIN

SELECT  @max_idinfo=IDENT_CURRENT(@tablename)

INSERT #tablespaceinfo (nameinfo,max_idinfo)

VALUES (@tablename,@max_idinfo)

END

FETCH NEXT FROM Info_cursor

INTO @tablename

END

CLOSE Info_cursor

DEALLOCATE Info_cursor

SELECT * FROM #tablespaceinfo ORDER BY nameinfo DESC

时间: 2024-07-30 16:40:56

查找数据库里所有表当前的最大id的相关文章

查询数据库里所有表名和字段名的语句

查询数据库里所有表名和字段名的语句SQL 查询所有表名:SELECT NAME FROM SYSOBJECTS WHERE TYPE='U'mysql: SELECT * FROM INFORMATION_SCHEMA.TABLES查询表的所有字段名:SELECT NAME FROM SYSCOLUMNS WHERE ID=OBJECT_ID(' 表名' )SELECT * FROM INFORMATION_SCHEMA.TABLESSELECT * FROM INFORMATION_SCHEM

为什么我的mysql数据库里的表只有frm文件

因为用的是INNODB存储引擎. 1.导出表数据及表结构为SQL,2.删除旧表(删除前先备份)3.修改导出后的SQL,将INNODB替换成MYISAM4.导入表数据及表结构 一.两种引擎的应用方式和区别: MyISAM:这个是默认类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的 顺序访问方法) 的缩写,它是存储记录和文件的标准方法.与其他存储引擎比较,MyISAM具有检查和修复表格的大多数工具. MyISAM表格可以被压缩,

对数据库里所有表的自增字段初始化

对数据库存储过程还不是很熟练,一时半会还写不出函数,所以就干脆用php写了个程序. 十几个数据库,每个库里都有几百张表,数据全部被清空了,但是表里的自增字段的值却还是保留着原表里的,要全部一次性的还原到初始值,若是一个表一个表的修改,不知道要改到猴年马月. //在系统库查询需要修改的数据库的表名称 $sysDbName="information_schema"; $dbarray=array("db1","db2","db3"

查找数据库中所有表中的字段包含特定值,之后修改特定值

declare @cloumns varchar(40) declare @tablename varchar(40) declare @str varchar(40) declare @counts int declare @sql nvarchar(2000) declare @str2 nvarchar(2000) declare MyCursor Cursor For Select a.name as Columns, b.name as TableName from syscolumn

如果第三方数据表与系统数据库里的表名格式不一致的解决方案

namespace Model; use Think\Model; class QqModel extends Model{//这两种方法都可以解决 // protected $trueTableName = 'tencent_qq'; protected $tablePrefix = 'tencent_'; }

mysql/mariadb数据库在插入表数据时,ID竟然成奇数增加了?看完下面内容就知道怎么处理了。

今天突然被问到一个问题,mysql数据库插入表数据时,设置了ID自增,但是插入数据后,ID却呈奇数增加,不是123456类型,而是13579形式,突然有点懵,研究了一会,发现是auto_increment步长的问题,下面就具体来说下怎么解决: 插入数据后发生表内ID按奇数增加,如下图: 查看自增步长:show variables like 'auto_increment%'; 将自增步长改为1:set @@auto_increment_increment=1; 此时用truncate清空表数据重

SqlServer数据库清空数据表并恢复起始ID

清空并设置ID起始值为1开始. 运行语句:TRUNCATE   TABLE   tablename 说明:tablename为数据表名,按你要清空的数据库表名自行更改. 设置ID起始值: 运行语句:DBCC   CHECKIDENT   ('tablename',   RESEED,  2) 说明:tablename 为数据表名,2为起始ID数,可自定义修改.

【奇葩的需求】对整个数据库里的所有表的所有字段的数据操作

哎,因为图片服务器的网址变了,所以让把数据库里所有表所有字段的数据里的旧网址替换成新网址,所以就只能写了这么一个代码,貌似效率还不错,20多W的数据量,只用了13秒,好的代码不需要太多的文字来解释 <?php  class TestAction extends Action{ private $old_str=''; private $new_str='' function index(){ set_time_limit(0); $tableList=$this->getTables(); f

SQLserver查询数据库所有字段-表名

SELECT * FROM INFORMATION_SCHEMA.columns WHERE TABLE_NAME='Account' SELECT (case when a.colorder=1 then d.name else '' end) as 表名,--如果表名相同就返回空 a.colorder as 字段序号, a.name as 字段名, (case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' e