¿Hay alguna manera en SMSS para detectar si una tabla tiene algún registro? Necesito obtener una lista de tablas que tienen registros. tal vez hay una declaración sql que hará el truco?SQL Server 2008: Tengo 1000 tablas, necesito saber qué tablas tienen datos
Respuesta
una sintaxis más simple:
SELECT [Name] = o.name
, [RowCount] = SUM(p.row_count)
FROM SYS.DM_DB_PARTITION_STATS p
INNER JOIN
SYS.TABLES o
ON p.[object_ID] = o.[object_id]
WHERE index_id <= 1 -- Heap or clustered index only
GROUP BY o.name
ORDER BY 2 desc
Puede utilizar este procedimiento almacenado:
EXEC sp_MSforeachtable @command1="EXEC sp_spaceused '?'"
Esto devolverá un conjunto de resultados para cada tabla en la base de datos (cada uno con el nombre y el número de filas, entre otra información).
Aquí es cómo usted puede ponerlos en una variable de tabla, y ordenarlos por el número de filas:
DECLARE @TBL TABLE (
[name] nvarchar(500),
[rows] bigint,
[reserved] nvarchar(500),
[data] nvarchar(500),
[index_size] nvarchar(500),
[unused] nvarchar(500)
)
INSERT INTO @TBL
EXEC sp_MSforeachtable @command1="EXEC sp_spaceused '?'"
SELECT * FROM @TBL
ORDER BY [rows] DESC
probar este - le da el nombre de tabla y contar la fila:
SELECT
t.NAME AS TableName,
SUM(p.rows) AS [RowCount]
FROM
sys.tables t
INNER JOIN
sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN
sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
WHERE
i.index_id <= 1
GROUP BY
t.NAME, i.object_id, i.index_id, i.name
ORDER BY
SUM(p.rows) DESC
Muestra todas las tablas y sus recuentos de filas en una sola salida.
Como su pregunta menciona específicamente SSMS también puede hacer clic derecho en la base de datos en el Explorador de objetos y luego en el menú de atajo hacer
Reports -> Standard Reports -> Disc Usage By Table
esto es súper útil –
La mejor respuesta. ¡Gracias! – DonP
- 1. Combinar dos tablas en SQL Server 2008
- 2. Sql server 2008, son tablas temporales únicas
- 3. ¿Las tablas de datos ADO.Net tienen índices?
- 4. SSIS: copiar tablas de MySQL a SQL Server 2008
- 5. SQL Server 2008 Management Studio tablas de advertencia ¿advertencia?
- 6. Combinar dos tablas de Select (SQL Server 2008)
- 7. tablas temporales globales - SQL Server vs Oracle
- 8. SQL Server/Oracle: tablas temporales privadas
- 9. Trituración de datos de XML, importación en tablas relacionales (SQL Server 2008)
- 10. Uso de tablas temporales en SQL Server
- 11. ¿Qué permiso necesito para usar SqlBulkCopy en SQL Server 2008?
- 12. vistas actualizables - SQL Server 2008
- 13. Uso de la búsqueda de texto completo en SQL Server 2008 en varias tablas, columnas
- 14. unen tres tablas en SQL Server 2005
- 15. SQL Server 2008 borre todas las tablas bajo el esquema especial
- 16. SQL Server creando nombres de tablas incorrectos, ¿por qué?
- 17. Cómo ver SQL 2008 Bloqueos y tablas bloqueadas
- 18. ¿Cómo se puede saber qué tablas ocupan más espacio en una base de datos de SQL Server 2005?
- 19. SQL Server 2008 R2 exportación de datos Problemas
- 20. Cómo encontrar tablas no utilizadas en SQL Server
- 21. tablas de SQL Server con nombre con esquema dbo
- 22. SQL Server 2008 R2 - seleccionar datos jerárquicos
- 23. Número máximo de tablas viables en SQL Server Y MySQL
- 24. lista de tablas sin índices en sql 2008
- 25. ACTUALIZACIÓN o FUSIÓN de tablas muy grandes en SQL Server
- 26. ¿Cómo 'restar' tablas sql?
- 27. Cómo importar tablas sin perder índices y claves en SQL Server 2008
- 28. Eliminar datos de las tablas dependientes
- 29. SQL Server Enterprise Manager - Masa Eliminar de tablas y cambio de propiedad de las Tablas
- 30. Seleccionar todas las columnas de todas las tablas de SQL Server 2008
Sintaxis incorrecta cerca de la palabra clave 'RowCount'. –
¿Cómo se puede restringir a cierta base de datos? Si tengo en el mismo servidor sql más bases de datos con los mismos nombres de tabla, el recuento de filas se agregará. –
@OndraPeterka: no, esto siempre se ejecuta en el contexto de ** una base de datos ** - y solo se mostrarán esas tablas. Esto no ** ** muestra todas las tablas de todas las bases de datos de un servidor –