查找数据库里所有表当前的最大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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。