Conteggio di tutte le tabelle

0
(0)

Ecco una query veloce per il conteggio di tutte le tabelle di un database, senza utilizzare cursori:

DECLARE @u TABLE (id INT, [schema] VARCHAR(200), name VARCHAR(1000))
INSERT INTO @u
SELECT ROW_NUMBER() OVER (ORDER BY s.name, t.name), s.name, t.name
FROM sys.tables t
	INNER JOIN sys.schemas s ON t.schema_id = s.schema_id

DECLARE @t TABLE (name VARCHAR(1000), c INT)

WHILE (SELECT COUNT(*) FROM @u) > 0
BEGIN
	DECLARE @n VARCHAR(1000), @s VARCHAR(200)
	SELECT TOP 1 @s = QUOTENAME([schema]), @n = QUOTENAME(name) FROM @u
	INSERT INTO @t EXEC ('SELECT ''' + @s + '.' + @n + ''', COUNT(*) FROM ' + @s + '.' + @n)
	DELETE FROM @u WHERE id = (SELECT TOP 1 id FROM @u)
END
SELECT * FROM @t

Hai trovato utile questo contenuto?

Valutazione: 0 / 5. Voti: 0

Vota per primo questo contenuto

Ci dispiace che tu abbia trovato inutile o sbagliato questo contenuto

Lasciaci un messaggio

Come possiamo migliorare?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Moderazione dei commenti attiva. Il tuo commento non apparirà immediatamente.