Solved

Generate table owner list for all the tables in a database

Posted on 2011-02-21
10
601 Views
Last Modified: 2013-11-24
I am using SQL 2008 please how do I write a query to generate table owner list and sizes for all the tables in a database. The query headings will be TABLENAME, OWNER, SIZE
0
Comment
Question by:agbelo
  • 5
  • 5
10 Comments
 
LVL 15

Expert Comment

by:jorge_toriz
ID: 34948274
Well, I think this can help you as a start point:

SELECT SCHEMA_NAME(T.[schema_id]) + '.' + T.name, USER_NAME(S.principal_id) AS Owner
FROM sys.tables T
INNER JOIN sys.schemas S
ON T.[schema_id] = S.[schema_id]
ORDER BY T.name

In SQL Server 2008 the owner is the one that own the schema where the object resides.
0
 
LVL 15

Accepted Solution

by:
jorge_toriz earned 500 total points
ID: 34948282
Well, in the preceeding sentence, I must fix: "the owner (in tables) is the one that own the schema where the object resides"
0
 

Author Comment

by:agbelo
ID: 34952700
That was surely very helpful so what about if this was for a SQL 2000 server? How would the code look?
0
 

Author Closing Comment

by:agbelo
ID: 34952757
Solution will be complete when my follow up question is answered
0
 

Author Comment

by:agbelo
ID: 34952789
And also include the table sizes column in your answer
0
Microsoft Certification Exam 74-409

Veeam® is happy to provide the Microsoft community with a study guide prepared by MVP and MCT, Orin Thomas. This guide will take you through each of the exam objectives, helping you to prepare for and pass the examination.

 
LVL 15

Expert Comment

by:jorge_toriz
ID: 34952794
Ups... I can't really remember anything about sql 2000, let me find the system views and verify if this information can be get
0
 
LVL 15

Expert Comment

by:jorge_toriz
ID: 34952892
Well, you can get the estimated row size with this one:

SELECT SCHEMA_NAME(T.[schema_id]) + '.' + T.name, USER_NAME(S.principal_id) AS Owner, SUM(C.max_length) AS EstimatedRowSize
FROM sys.tables T
INNER JOIN sys.schemas S
ON T.[schema_id] = S.[schema_id]
INNER JOIN sys.columns C
ON T.[object_id] = C.[object_id]
GROUP BY T.[schema_id], T.name, S.principal_id
ORDER BY T.name
0
 

Author Comment

by:agbelo
ID: 34953077
Please I asked for the estimated table size for each table and make values return in MB
0
 

Author Comment

by:agbelo
ID: 34953155
I actuallly have a query that would do what I need I just need to re-engineer it to give me the object owners. Maybe you can help me here. Below is the query I am using and it works in both SQL 2000 and SQL 2008. Please help to modify it to return the object owners

SELECT so.[name], used AS "# of Pages", rows AS "# of Rows", (used * 8) /
1024 AS "# of MB"  
FROM sysobjects so JOIN sysindexes si ON so.id = si.id
WHERE so.xtype = 'U'
ORDER BY used DESC
0
 
LVL 15

Expert Comment

by:jorge_toriz
ID: 34953375
You can use this query to get the table size:

SELECT T.name AS TableName, SUM(P.record_count * P.avg_record_size_in_bytes) AS TotalSize
FROM sys.tables T
CROSS APPLY sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'DETAILED') AS P
WHERE T.[object_id] = P.[object_id]
GROUP BY T.name
ORDER BY T.name
0

Featured Post

[Webinar] Disaster Recovery and Cloud Management

Learn from Unigma and CloudBerry industry veterans which providers are best for certain use cases and how to lower cloud costs, how to grow your Managed Services practice in IaaS clouds, and how to utilize public cloud for Disaster Recovery

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
What should be a storage size for SQL in day1, day2 and day 3 7 82
triggered use of sp_send_dbmail failure 2 23
Sql query 107 33
Ssis not sending failure message 2 11
Hi all, It is important and often overlooked to understand “Database properties”. Often we see questions about "log files" or "where is the database" and one of the easiest ways to get general information about your database is to use “Database p…
In this article I will describe the Copy Database Wizard method as one possible migration process and I will add the extra tasks needed for an upgrade when and where is applied so it will cover all.
The viewer will learn how to implement Singleton Design Pattern in Java.
This tutorial covers a practical example of lazy loading technique and early loading technique in a Singleton Design Pattern.

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

24 Experts available now in Live!

Get 1:1 Help Now