Transact-SQL 示例 - 查询某个数据库内的所有表的记录行数及其总和
2011-07-25 20:05
465 查看
直接上SQL脚本
执行: dbo.ShowAllTableRows 'AdventureWorks' 的效果
CREATE PROCEDURE dbo.ShowAllTableRows @databaseName NVARCHAR(100) AS BEGIN --declare @databaseName nvarchar(100) --set @databaseName = 'tempdb' DECLARE @dynamicSql NVARCHAR(4000) SET @dynamicSql = N'USE ' + @databaseName + N'; SET NOCOUNT ON; DECLARE cur CURSOR LOCAL FORWARD_ONLY READ_ONLY FOR SELECT ''['' + s.name + '']'' + ''.['' + t.name + '']'' TableName FROM sys.tables t INNER JOIN sys.schemas s ON t.schema_id = s.schema_id; OPEN cur --IF EXISTS (SELECT object_id(N''tempdb..#table'')) -- DROP TABLE #table CREATE TABLE #table ( [TableName] NVARCHAR(300) PRIMARY KEY, [Rows] INT ) DECLARE @tableName VARCHAR(100) FETCH NEXT FROM cur INTO @tableName WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @sql NVARCHAR(2000) SET @sql = ''INSERT INTO #table ([TableName], [Rows]) VALUES ('' SET @sql = @sql + '''''''' + @tableName + '''''', '' + ''(SELECT COUNT(*) FROM '' + @tableName + ''))'' exec sp_executesql @sql --print @sql FETCH NEXT FROM cur INTO @tableName END CLOSE cur DEALLOCATE cur SELECT * FROM #table ORDER BY [Rows] DESC DECLARE @allRows INT; SET @allRows = (SELECT SUM([Rows]) FROM #table); PRINT @allRows;'; --PRINT @dynamicSql; exec sp_executesql @dynamicSql END
执行: dbo.ShowAllTableRows 'AdventureWorks' 的效果
相关文章推荐
- Transact-SQL 示例 - 查询某个数据库内的所有表的记录行数及其总和
- SQL 2005 查询某个数据库下所有表的记录数的方法
- Sql server 2005 查询某个数据库下的所有表的记录行数
- Sql server 2005 查询某个数据库下的所有表的记录行数
- SQL Server 查询某个数据库内的所有表的记录行数
- 查询某个数据库下的所有表的记录行数
- sql查询数据库中所有表的记录条数,以及占用磁盘空间大小。
- SqlServer查询数据库所有用户表的记录数
- 利用SQL语句查询数据库中所有表
- sql 查询所有数据库、表名、表字段总结
- sql查询数据库一个表的数据行数
- SQL查询所有数据库名称,表大小.
- 查询数据库所有表的记录数
- sql脚本查询所有数据库表名
- SQL Server查询数据库中所有的表名及行数
- SQL--处理表重复记录(查询和删除) 示例:查询最近一条用户登陆日志
- sql server 查询所有表的行数记录
- MySQL、SQL Server、Oracle 3种数据库查询表中前N行记录的SQL语句
- SQL 数据库 学习 026 查询-09 聚合函数 --- 多行记录返回至一个值,通常用于统计分组的信息
- 如何用SQL语句,查询数据库(日期+时间字段)中等于某一天的记录