When you think ASP, think...
Recent Articles
All Articles
ASP.NET Articles [1.x] [2.0]
ASPFAQs.com
Message Board
Related Web Technologies
User Tips!
Coding Tips
Search

Sections:
Book Reviews
Sample Chapters
Commonly Asked Message Board Questions
Headlines from ASPWire.com
JavaScript Tutorials
MSDN Communities Hub
Official Docs
Security
Stump the SQL Guru!
Web Hosts
XML Info
Information:
Advertise
Feedback
Author an Article
Technology Jobs

















internet.com
IT
Developer
Internet News
Small Business
Personal Technology
International

Search internet.com
Advertise
Corporate Info
Newsletters
Tech Jobs
E-mail Offers
ASP ASP.NET ASP FAQs Message Board Feedback ASP Jobs
Print this page.

Windows Systems Administrator
Jupitermedia
US-CT-Darien

Justtechjobs.com Post A Job | Post A Resume

Published: Wednesday, September 08, 1999

Using the sysobjects Table


In SQL Enterprise Manager, when you expand a database you are shown the database's tables, views, stored procedures, and other useful database objects. Have you ever wondered how in the world SQL Server keeps track of the many objects for each database? Not surprisingly, SQL Server uses a table to store the object information for each database. This table, sysobjects, can be queried just like any other table!

- continued -

Let's say that you wanted to display the tables in your database on a web page. All of the tables in your database are stored in the sysobjects table, so all you need to do is properly query the sysobjects table. Since the sysobjects table contains information on all of your database's objects, we don't want to simple do a SELECT * FROM sysobjects. There is a column in the sysobjects table named Type, which is used to differentiate between each type of database object. Tables are of type U, as in underwear.

So all we need to do is query the sysobjects table for rows that have a U in their Type field. Simple enough.

'Connection object... Dim objConn Set objConn = Server.CreateObject("ADODB.Connection") objConn.Open "DSN=MyDatabaseName" 'We want to query the sysobjects table where type = 'U' Dim strSQL strSQL = "SELECT * FROM sysobjects WHERE type='U'" 'Execute the query Dim objRS Set objRS = objConn.Execute(strSQL) 'Display the results in a table Response.Write "<TABLE BORDER=1 CELLSPACING=1><TR>" & vbCrLf Dim fld For Each fld in objRS.Fields Response.Write "<TH>" & fld.Name & "</TH>" & vbCrLf Next Response.Write "</TR><TR>" & vbCrLf Do While not objRS.EOF Response.Write "<TR>" & vbCrLf For Each fld in objRS.Fields Response.Write "<TD>" & fld.Value & "</TD>" & vbCrLf Next Response.Write "</TR>" & vbCrLf objRS.MoveNext Loop Response.Write "</TABLE>" 'Clean up... objConn.Close Set objConn = Nothing

There are a lot of columns in the sysobjects table. Some columns you might be most interested in are:

  • Type: This determines what type of database object we are dealing with (table, view, stored procedure, etc.)
  • uid: This is the id of the user that created the object. Once you know the user id with which you created all of your database objects, you can query for records in sysobjects that contain just that user id. That way, you won't see all of the extraneous system objects.
  • name: The actual name of the database object (such as the table name, or the view name)
  • crdate: This is the creation date of the database object
  • id: This unique identifier is important when referencing other system tables

The sysobjects table does not only contain information on the tables in your database. If you wanted to list all of the views, you would simply need to change the SQL query to:

SELECT * FROM sysobjects WHERE type='V'

If you wanted to list the stored procedures for your database, just change the SQL query to:

SELECT * FROM sysobjects WHERE type='P'

The sysobjects table is pretty useful for administrative tasks. Imagine that you want to view all the contents of a given table. You could create a page that listed all of your tables in your database in a form. The user could click on a table and submit the form. The submitted form would take the user to an ASP page that, based on the table name chosen in the form, dumped the contents of the table. This would be a more elegant approach than writing a table-listing script for each table.

Well, that wraps up today's article. I hope you learned something new! Have a great day, and happy programming!


Windows Internet Technology | ASP.NET [1.x] [2.0] | ASPMessageboard.com | ASPFAQs.com | Advertise | Feedback | Author an Article



JupiterOnlineMedia

internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

Jupitermedia Corporate Info


Legal Notices, Licensing, Reprints, & Permissions, Privacy Policy.

Advertise | Newsletters | Tech Jobs | Shopping | E-mail Offers

Solutions
Whitepapers and eBooks
Microsoft Article: HyperV-The Killer Feature in WinServer ‘08
Avaya Article: How to Feed Data into the Avaya Event Processor
Microsoft Article: Install What You Need with Win Server ‘08
HP eBook: Putting the Green into IT
Whitepaper: HP Integrated Citrix XenServer for HP ProLiant Servers
Intel Go Parallel Portal: Interview with C++ Guru Herb Sutter, Part 1
Intel Go Parallel Portal: Interview with C++ Guru Herb Sutter, Part 2--The Future of Concurrency
Avaya Article: Setting Up a SIP A/S Development Environment
IBM Article: How Cool Is Your Data Center?
Microsoft Article: Managing Virtual Machines with Microsoft System Center
HP eBook: Storage Networking , Part 1
Microsoft Article: Solving Data Center Complexity with Microsoft System Center Configuration Manager 2007
MORE WHITEPAPERS, EBOOKS, AND ARTICLES
Webcasts
Intel Video: Are Multi-core Processors Here to Stay?
On-Demand Webcast: Five Virtualization Trends to Watch
HP Video: Page Cost Calculator
Intel Video: APIs for Parallel Programming
HP Webcast: Storage Is Changing Fast - Be Ready or Be Left Behind
Microsoft Silverlight Video: Creating Fading Controls with Expression Design and Expression Blend 2
MORE WEBCASTS, PODCASTS, AND VIDEOS
Downloads and eKits
Sun Download: Solaris 8 Migration Assistant
Sybase Download: SQL Anywhere Developer Edition
Red Gate Download: SQL Backup Pro and free DBA Best Practices eBook
Red Gate Download: SQL Compare Pro 6
Iron Speed Designer Application Generator
MORE DOWNLOADS, EKITS, AND FREE TRIALS
Tutorials and Demos
How-to-Article: Preparing for Hyper-Threading Technology and Dual Core Technology
eTouch PDF: Conquering the Tyranny of E-Mail and Word Processors
IBM Article: Collaborating in the High-Performance Workplace
HP Demo: StorageWorks EVA4400
Intel Featured Algorhythm: Intel Threading Building Blocks--The Pipeline Class
Microsoft How-to Article: Get Going with Silverlight and Windows Live
MORE TUTORIALS, DEMOS AND STEP-BY-STEP GUIDES