Theory and Practice of Database and Data Analysis (1) – Searching for objects
Recently, I had to spend a significant portion of my time on production data support. Since we have a full-featured agency management system, I have to deal with parts of the application that I am not familiar with. Through the accumulated experiences and improved procedure, I was able to locate the problems with the increasing speed. In this series, I will try to document my experiences and approaches. In the first part, I will discuss how to search for objects.
Supposing we were told that there were problems in address data, the very first thing we need to do is to locate the table and the field that contains the data. Microsoft SQL Server has a set of sys* tables. It also supports ANSI style INFORMATION_SCHEMA. In order to reuse the knowledge discussed here to other database systems, I will try to use the INFORMATION_SCHEMA as much as possible. So to find any table that is related to “Address”, we can use the following query:
Using AdventureWorks 2008 sample database, it yields the following results:
If we suspect there are columns in other tables relating to address, we can search for the columns with the following query:
We will get the following results this time:
Supposing we need to find all the stored procedures and functions that reference a table, we can use sp_depends stored procedure. If we need to search thoroughly using a string, we can use the following query:
However, we cannot find triggers through Information_Schema. We have to use sysobjects:
Once we find the triggers, we can find the text using sp_helptext or query the syscomments table.
In the next part of the series, I will discuss navigating the table relationships.