SQL alle zeilenanzahlen der tabellen auf einer Instanz auslesen?

... komplette Frage anzeigen

1 Antwort

Was bei der 2. Methode nicht stimmt, kann ich leider nicht feststellen. Aber vielleicht ist das hier das, was du suchst:


CREATE TABLE #x(db SYSNAME, o SYSNAME, rc SYSNAME);

DECLARE @sql NVARCHAR(MAX) = N'';

SELECT @sql += 'INSERT #x(db,o,rc)
SELECT db = N''' + name + '''
,o.name [Name]
,ddps.row_count [Row Count]
FROM ' + QUOTENAME(name) + '.sys.indexes AS i
INNER JOIN ' + QUOTENAME(name) + '.sys.objects AS o
ON i.OBJECT_ID = o.OBJECT_ID
INNER JOIN ' + QUOTENAME(name) + '.sys.dm_db_partition_stats AS ddps
ON i.OBJECT_ID = ddps.OBJECT_ID AND i.index_id = ddps.index_id
WHERE i.index_id < 2 AND o.is_ms_shipped = 0
ORDER BY o.NAME;'
FROM sys.databases
WHERE database_id > 4;

EXEC sp_executesql @sql;

SELECT db, o, rc FROM #x ORDER BY db, o;


Durch etwas Google-Arbeit fand ich dieses Script hier:
http://stackoverflow.com/questions/15668590/tsql-rowcounts-of-all-tables-in-a-server

Diese (englischsprachige) Seite, stackoverflow, ist immer ein guter Ansatz bei Fragen rund um die Programmierung. Hoffentlich konnte ich weiterhelfen.

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?