Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 试图统计数据库中每个表上的不同记录_Sql_Sql Server_Count_Distinct - Fatal编程技术网

Sql 试图统计数据库中每个表上的不同记录

Sql 试图统计数据库中每个表上的不同记录,sql,sql-server,count,distinct,Sql,Sql Server,Count,Distinct,我有一个查询,它提供数据库中每个表中的记录总数: SELECT QUOTENAME('MyDb') + '.' + QUOTENAME(SCHEMA_NAME([sOBJ].schema_id)) + '.' + QUOTENAME([sOBJ].[name]) AS [TableName], SUM([sPTN].[Rows]) AS [RowCount] FROM [MyDB].[sys].[objects] AS [

我有一个查询,它提供数据库中每个表中的记录总数:

SELECT QUOTENAME('MyDb') + '.' + QUOTENAME(SCHEMA_NAME([sOBJ].schema_id)) + '.' 
+ QUOTENAME([sOBJ].[name]) AS [TableName], 
             SUM([sPTN].[Rows]) AS   [RowCount]
        FROM
            [MyDB].[sys].[objects] AS [sOBJ]
            INNER JOIN
                [sys].[partitions] AS [sPTN]
            ON [sOBJ].object_id = [sPTN].object_id
        WHERE  [sOBJ].[type] = 'U'
             AND [sOBJ].[is_ms_shipped] = 0x0
             AND [index_id] < 2 -- 0:Heap, 1:Clustered
        GROUP BY [sOBJ].schema_id, 
               [sOBJ].[name]
我试图做的是为数据库中的每个表获取不同记录的计数。我尝试过使用While循环和cte,但似乎无法正确使用。也不确定这是否是正确的方法


提前感谢。

每个表的所有列都不同吗?如果每个表中都有PK,那么每一行都是不同的,我认为这不是一件容易做到的事情,您需要知道决定每个表中差异的列名。您需要索引统计或表统计,但我没有看到直接查询这些数据的方法。唯一可靠的方法是直接选择distinct*来计算行数,这非常糟糕。谢谢你们的回答,这也是我的想法,但我不确定我是否正确。