Wie können wir alle Tabellen in der Datenbank ohne Daten (wie in, es gibt keine Zeilen in der Tabelle) im Falle eines Microsoft SQL Server abrufen?
Gibt es eine Methode?Tabellen ohne Daten finden
Antwort
Try this -
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
Wie in AdaTheDev's answer erklärte:
Eine Aussage denke ich, ist erwähnenswert ist SET FMTONLY:
SET FMTONLY ON; SELECT * FROM SomeTable SET FMTONLY OFF;
keine Zeilen verarbeitet oder gesendet an den Client wegen der Anfrage, wenn SET FMTONLY ist tu eingeschaltet.
Der Grund dafür kann sehr nützlich sein, weil Sie jede Abfrage/gespeicherte Prozedur liefern kann und nur die Metadaten des Suchresultates zurückzukehren.
Oder, wie
Versuchen in Shoaib's answer erklärte:
SELECT TOP 0 * FROM [TableName]
und SQLDataAdapter verwenden, um einen Datensatz zu füllen, erhalten dann die Tabelle aus diesem DataSet.
Versuchen Sie, diese
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
ODER Wenn u nur benutzerdefinierte müssen Tabellen dann diese verwenden
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
Um die Liste der leeren Tische zu bekommen, können wir Verwenden Sie die folgende tsql -
EXEC sp_MSforeachtable 'IF NOT EXISTS (SELECT 1 FROM ?) PRINT ''?'' '
Und eine Liste von Tabellen zu erhalten zumindest eine Reihe von Daten, die wir den unten Tsql verwenden können -
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
Es Namen und Zeilen in den Tabellen Tabelle
geben- 1. Ähnliche Daten aus Tabellen finden
- 2. Finden Sie Daten ohne Schlüsselwert
- 3. MySQL Werte ohne Fremdschlüsseleinschränkungen erhalten UND Daten vergleichen Verschiedene Tabellen
- 4. Dynamisch Tabellen mit Primärschlüsseln finden
- 5. Pivot-Tabellen ohne Aggregation?
- 6. finden Sie ebenfalls Daten aus zwei Tabellen in mysql
- 7. Wie ohne Verbindungs Tabellen
- 8. Erstellen von Tabellen ohne Rahmen
- 9. Zusammenfassen von Daten und JOIN zwei Tabellen ohne entsprechenden Schlüssel
- 10. SQL Server physische Daten Layout für Tabellen ohne Indizes
- 11. Django ohne zusätzliche Tabellen?
- 12. Testen ohne betroffene bestimmte Tabellen
- 13. Dynamische Daten in Gurken Tabellen
- 14. SQL-Tabellen Beitritt bekommen anderen Tabellen Daten
- 15. Daten aus drei Tabellen
- 16. Daten in Tabellen anordnen?
- 17. Daten zwischen zwei Tabellen
- 18. Tabellen verbunden ohne gemeinsame Felder
- 19. ActiveRecord: Finden ohne Verknüpfungen
- 20. Mehrere SQL-Tabellen hinzugefügt zusammen ohne JOIN
- 21. Setup-Datenbank ohne Seed-Daten
- 22. Html-Tabellen: Einfügen von Daten
- 23. Fetch Daten aus 3 Tabellen
- 24. Daten von 2 Tabellen erhalten
- 25. Herauszufinden zugehörige Daten aus Tabellen
- 26. Daten in mehrere Tabellen einfügen
- 27. Mysql Zwei Tabellen gemischt Daten
- 28. Aktualisierungsabfrage Daten aus drei Tabellen
- 29. Merge Tabellen Ohne auf Keys Sortier
- 30. Symfony2 API mit Tabellen ohne Entitäten
http://blog.sqlauthority.com/2010/09/08/sql-server-find-row-count-in-table-find-largest-table-in-database-part-2/ – sumit