CREATE TABLE #results ( [Column Name] varchar(1000), [Current Max] bigint, [IDENT_CURRENT] bigint, [Max Value] bigint, [IDENT_INCR] bigint, [Remaining] bigint ) DECLARE @cmd varchar(4000) DECLARE stmt_cursor CURSOR FOR SELECT 'INSERT INTO #results ( [Column Name], [Current Max], [IDENT_CURRENT], [Max Value], [IDENT_INCR],[Remaining] ) SELECT ''[' + s.name + '].[' + t.name + '].[' + c.name + ']'', MAX([' + s.name + '].[' + t.name + '].[' + c.name + '] ), IDENT_CURRENT(''[' + s.name + '].[' + t.name + ']''),' + CASE c.max_length WHEN 8 THEN '9223372036854775807' WHEN 4 THEN '2147483647' WHEN 2 THEN '32767' WHEN 1 THEN '255' END + ', IDENT_INCR(''[' + s.name + '].[' + t.name + ']''), (' + CASE c.max_length WHEN 8 THEN '9223372036854775807' WHEN 4 THEN '2147483647' WHEN 2 THEN '32767' WHEN 1 THEN '255' END + ' - ISNULL(IDENT_CURRENT(''[' + s.name + '].[' + t.name + ']''),0))/ IDENT_INCR(''[' + s.name + '].[' + t.name + ']'') FROM [' + s.name + '].[' + t.name + ']' FROM sys.columns c JOIN sys.tables t ON c.object_id = t.object_id JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE c.scale = 0 AND c.is_identity = 1 OPEN stmt_cursor FETCH NEXT FROM stmt_cursor INTO @cmd WHILE @@FETCH_STATUS = 0 BEGIN -- PRINT @cmd EXEC ( @cmd ) FETCH NEXT FROM stmt_cursor INTO @cmd END CLOSE stmt_cursor DEALLOCATE stmt_cursor SELECT * FROM #results DROP TABLE #results