Come possiamo recuperare tutte le tabelle nel database senza dati (come in, non ci sono righe nella tabella) nel caso di un Microsoft SQL Server?
C'è qualche metodo?Trova tabelle senza dati
risposta
Prova questo -
WITH CTE AS
(
SELECT sc.name +'.'+ ta.name TableName
,SUM(pa.rows) RowCnt
FROM sys.tables ta
INNER JOIN sys.partitions pa
ON pa.OBJECT_ID = ta.OBJECT_ID
INNER JOIN sys.schemas sc
ON ta.schema_id = sc.schema_id
WHERE ta.is_ms_shipped = 0 AND pa.index_id IN (1,0)
GROUP BY sc.name,ta.name
)
SELECT * FROM CTE WHERE RowCnt = 0
http: // blog.sqlauthority.com/2010/09/08/sql-server-find-row-count-in-table-find-largest-table-in-database-part-2/ – sumit
Come indicato nel AdaTheDev's answer:
Una dichiarazione che penso è degno di nota è SET FMTONLY:
SET FMTONLY ON; SELECT * FROM SomeTable SET FMTONLY OFF;
Nessuna riga vengono elaborati o inviati al cliente a causa della richiesta quando SET FMTONLY è tu acceso ON.
Il motivo per cui questo può essere utile perché è possibile fornire qualsiasi stored procedure/ query e tornare solo i metadati del gruppo di risultati.
Oppure, come dichiarato nella Shoaib's answer
Prova:
SELECT TOP 0 * FROM [TableName]
e utilizzare SqlDataAdapter per riempire un DataSet, quindi ottenere la tabella da quella DataSet.
Prova questo
SELECT TableName=OBJECT_NAME(OBJECT_ID) ,Data_Rows= SUM(row_count)
FROM sys.dm_db_partition_stats
WHERE index_id in (0 ,1)
GROUP BY OBJECT_ID
HAVING SUM(row_count) = 0
O Se u bisogno solo le tabelle definite dall'utente quindi utilizzare questo
SELECT TableName=OBJECT_NAME(s.OBJECT_ID) ,Data_Rows= SUM(row_count)
FROM sys.dm_db_partition_stats s
JOIN sys.tables T
ON T.object_id = S.object_id
WHERE index_id in (0 ,1)
and T.type = 'U'
GROUP BY s.OBJECT_ID
HAVING SUM(row_count) = 0
Per ottenere l'elenco di tavoli vuoti, possiamo utilizzare il seguente tsql -
EXEC sp_MSforeachtable 'IF NOT EXISTS (SELECT 1 FROM ?) PRINT ''?'' '
E, per ottenere un elenco di tabelle con almeno una riga di dati, siamo in grado di utilizzare il seguito TSQL -
EXEC sp_MSforeachtable 'IF EXISTS (SELECT 1 FROM ?) PRINT ''?'' '
SELECT '[' + SCHEMA_NAME(t.schema_id) + '].[' + t.name + ']' AS fulltable_name, SCHEMA_NAME(t.schema_id) AS schema_name, t.name AS table_name,
i.rows
FROM sys.tables AS t INNER JOIN
sys.sysindexes AS i ON t.object_id = i.id AND i.indid < 2 and i.rows=0
Darà nome della tabella e le righe in quella tabelle
- 1. Trova discrepanze tra due tabelle
- 2. Tabelle pivot senza aggregazione?
- 3. Aggiorna UITableView tableFooterView senza ricaricare dati di tabelle intere
- 4. Dati dinamici in tabelle Cucumber
- 5. trova senza ricorsione
- 6. Elimina dati dalle tabelle dipendenti
- 7. tabelle fusione con dati duplicati
- 8. Trova Informix di tabelle e colonne dettagli utilizzando query SQL
- 9. Perché scegliere da più tabelle, senza aderire
- 10. Trova QUALSIASI testo senza tag
- 11. Trova elementi di dati attributi
- 12. Trova quale tabella è che i dati della colonna
- 13. Linq a 3 tabelle senza chiavi esterne
- 14. MySQL - Unire due tabelle senza duplicati?
- 15. Entità di ibernazione senza tabelle sottostanti
- 16. Laravel - Creazione di tabelle dinamicamente (senza migrazione)
- 17. Combina due tabelle senza rapporto tra loro
- 18. SQL Unire due tabelle senza relazioni
- 19. Node.js, Mongo trova e restituisce i dati
- 20. Trova la differenza tra due grandi tabelle in PostgreSQL
- 21. Trova tutte le tabelle in html utilizzando BeautifulSoup
- 22. Dati da due tabelle in una vista
- 23. Inserire dati in tabelle mysql usando ansible
- 24. SQL confrontare i dati di due tabelle
- 25. Confronto dati SQL - Alcune tabelle mancanti
- 26. dati sql sum da più tabelle
- 27. dati scegliere tra due tabelle in MySql
- 28. ottenere i dati gerarchici da tabelle autoreferenziali
- 29. PostgreSQL JOIN dati da 3 tabelle
- 30. Come eliminare i dati da più tabelle?
http://blog.sqlauthority.com/2010/09/08/sql-server-find-row-count-in-table-find-largest-table-in-database-part-2/ – sumit