Skip to main content

SQL Server - How to find all empty/have values tables

Many times our managers ask to find empty tables and have value tables report. It is time taken to find the tables manually. I am writing some query which may help you to find empty and have values table.
Following query help you to find all empty tables in database.

1 – See following query


SELECT IST.TABLE_NAME , MAX(SI.rows ) TOTAL_RECORDS
FROM sysindexes SIINFORMATION_SCHEMA.TABLES IST
WHERE IST.TABLE_NAME = OBJECT_NAME(SI.id)
      AND IST.TABLE_TYPE = 'BASE TABLE'
GROUP BY IST.TABLE_SCHEMAIST.TABLE_NAME
HAVING MAX(SI.rows)<=0

  
2- If you want to find all empty tables of particular “schema” then use following query.


SELECT IST.TABLE_NAME , MAX(SI.rows ) TOTAL_RECORDS
FROM sysindexes SIINFORMATION_SCHEMA.TABLES IST
WHERE IST.TABLE_NAME = OBJECT_NAME(SI.id)
      AND IST.TABLE_TYPE = 'BASE TABLE'
      AND IST.TABLE_SCHEMA='Schema_Name'
GROUP BY IST.TABLE_SCHEMAIST.TABLE_NAME
HAVING MAX(SI.rows)<=0


If you want to find those all tables that have values then use the following queries.
1 – Query to find all tables that have values.


SELECT IST.TABLE_NAME , MAX(SI.rows ) TOTAL_RECORDS
FROM sysindexes SIINFORMATION_SCHEMA.TABLES IST
WHERE IST.TABLE_NAME = OBJECT_NAME(SI.id)
      AND IST.TABLE_TYPE = 'BASE TABLE'
GROUP BY IST.TABLE_SCHEMAIST.TABLE_NAME
HAVING MAX(SI.rows)>0


2- If you want to find all tables that have values of particular “schema” then use following query.


SELECT IST.TABLE_NAME , MAX(SI.rows ) TOTAL_RECORDS
FROM sysindexes SIINFORMATION_SCHEMA.TABLES IST
WHERE IST.TABLE_NAME = OBJECT_NAME(SI.id)
      AND IST.TABLE_TYPE = 'BASE TABLE'
      AND IST.TABLE_SCHEMA = 'SCHEMA_NAME'
GROUP BY IST.TABLE_SCHEMAIST.TABLE_NAME
HAVING MAX(SI.rows)>0


Another query may also help you to find all Empty tables.


;WITH TBL AS
(
   SELECT
      SUM(row_countAS ROW_COUNT,
      OBJECT_NAME(OBJECT_IDAS TABLE_NAME,
      OBJECT_SCHEMA_NAME(OBJECT_IDAS TABLE_SCHEMA
   FROM
      sys.dm_db_partition_stats
   WHERE
      INDEX_ID = 0 OR INDEX_ID= 1
         
   GROUP BY
      OBJECT_ID
)
SELECT *
FROM TBL
WHERE ROW_COUNT = 0

  
You can filter for schema as below.


;WITH TBL AS
(
   SELECT
      SUM(row_countAS ROW_COUNT,
      OBJECT_NAME(OBJECT_IDAS TABLE_NAME,
      OBJECT_SCHEMA_NAME(OBJECT_IDAS TABLE_SCHEMA
   FROM
      sys.dm_db_partition_stats
   WHERE
      INDEX_ID = 0 OR INDEX_ID= 1
         
   GROUP BY
      OBJECT_ID
)
SELECT *
FROM TBL
WHERE ROW_COUNT = 0
AND TABLE_SCHEMA='Schema_Name'


If you wish to find all tables which have values so please change in above query ROW_COUNT >0


Popular posts from this blog

Add day to ISODate in MongoDB

We can use $add operator to add days in ISODate in mongodb, $add is the Arithmetic Aggregation Operator which adds number and date in mongodb.
Syntax:

{ $add: [ <expression1>, <expression2>, ... ] }

Note:  If one of the argument is date $add operator treats to other arguments as milliseconds to add to the date.
Example: Suppose we have a Test collection as below.

{"Title" : "Add day to ISODate in MongoBD","CreatedDate" : ISODate("2016-07-07T08:00:00.000Z")}

Query to add 2 days in CreatedDate

db.Test.aggregate([      { $project: { Title: 1, AddedDate: { $add: [ "$CreatedDate", 2*24*60*60000 ] } } }    ])

Result:

{ "_id" : ObjectId("579a1567ac1b3f3732483de0"), "Title" : "Add day to ISODate in MongoBD", "AddedDate" : ISODate("2016-07-09T08:00:00.000Z") }

Note: As mentioned in above note we have to convert days in millisecond because $add operator treat to other arg…

Remove special character from string in MongoDB

Problem: Suppose wehave a collection and one field is type string contains some special character (like !@#$%) and we don’t want these special character.
Solution: We can easily remove the special character from field using script “replace(/[^a-zA-Z 0-9 ]/g, '')” in our query.  How can we remove special character from string using this script please see following example.
Example: Suppose we have a collection “EduSurvey “where we are collecting information from institutions.

{Name:"JB institute”, About:"This is good one collage for MBA", Information:"This $%%institute ##has good faculty etc$$"}
{Name:"MK institute”, About:"This is good one collage for MCA", Information:"This$$%# is the dummy text12"}
{Name:"MG institute”, About:"This is good one collage for B,Tech", Information:"This# institute@ has&* good infrastructure"}

Did you notice Information fields contains some special character so we…