每个使用 SQL Server 的人都有一个包含表名的表 - sys.tables:
SELECT
t.name
FROM
sys.tables t
JOIN
sys.schemas s
ON
s.schema_id = t.schema_id
WHERE
t.name NOT IN ('sysdiagrams')
下面的SQL将创建一个输出,其中包含您在上述查询中找到的每个表,以及表计数。如果您只想使用特定的表,请编辑更新@Columns的查询,以获取您想要的表名:
DECLARE
@Columns NVARCHAR(MAX),
@SQL_Statement NVARCHAR(MAX)
SELECT
@Columns = ISNULL( @Columns + ', ', '') + 'SELECT TblName = ''' +t.name+''', NbrOfRows = COUNT(*) FROM ' + t.name
FROM
sys.tables t
JOIN
sys.schemas s
ON
s.schema_id = t.schema_id
WHERE
t.name NOT IN ('sysdiagrams')
SELECT
@Columns = REPLACE(@Columns, ', SELECT', ' UNION SELECT')
SELECT @SQL_Statement = '' + @Columns + ''
EXEC SP_EXECUTESQL @SQL_Statement = @SQL_Statement
你可以更改这个来使用你的表格名称表:
DECLARE
@Columns NVARCHAR(MAX),
@SQL_Statement NVARCHAR(MAX)
SELECT
@Columns = ISNULL( @Columns + ', ', '') + 'SELECT TblName = ''' +t.tablesname+''', NbrOfRows = COUNT(*) FROM ' + t.tablenames
FROM
tablelist
SELECT
@Columns = REPLACE(@Columns, ', SELECT', ' UNION SELECT')
SELECT @SQL_Statement = '' + @Columns + ''
EXEC SP_EXECUTESQL @SQL_Statement = @SQL_Statement