我试图了解如何使用实体框架检查数据库中的任何表是否包含数据。我可以检查一张桌子,但如何一次检查所有桌子? ef6有什么选择吗?
#!/bin/sh
daemon="/path/to/uwsgi"
. /etc/rc.d/rc.subr
rc_reload="NO"
rc_stop() {
${daemon} --stop /path/to/uwsgi.pid
}
rc_cmd $1
任何有关如何遍历实体的指针都会有所帮助。
答案 0 :(得分:3)
这是使用t-sql进行此操作的一种方法。在大多数系统上,这应该很快。在不到一秒钟的时间内,这在我们的ERP数据库中返回了。它在15,000多个分区统计信息中显示了4,210亿行。
select sum(p.row_count)
from sys.dm_db_partition_stats p
join sys.objects o on o.object_id = p.object_id
where o.type not in ('S', 'IT') --excludes system and internal tables.
答案 1 :(得分:1)
类似于@SeanLange,但显示没有任何行的表的架构名称和表名称。
SELECT Distinct OBJECT_SCHEMA_NAME(p.object_id) AS [Schema],
OBJECT_NAME(p.object_id) AS [Table]
FROM sys.partitions p
INNER JOIN sys.indexes i
ON p.object_id = i.object_id
AND p.index_id = i.index_id
WHERE OBJECT_SCHEMA_NAME(p.object_id) != 'sys'
And p.Rows = 0
ORDER BY [Schema], [Table]