SQL SERVER 2000:
select object_name(id),name from syscolumns where columnproperty(id,name,'IsIdentity')=1
SQLSERVER 2005:
select object_name(object_id),name from sys.identity_columns
Note: SQL Server 2005 stores the last value of the identity property that was generated. To query the last value execute the following query.
select name,last_value from sys.identity_columns
Find ALL columns in a table that are computed columns
SQL SERVER 2000:
select name from syscolumns where id =object_id('TableName') and iscomputed=1SQL SERVER 2005:
select name from sys.computed_columns where object_id =object_id('TableName')Note: The computed column in SQL Server 2005 may be persisted. To narrow down the result set, you could execute the following query:
select * from sys.computed_columns where is_persisted=0Find ALL database names in a SQL Server instance
SQL SERVER 2000:
select name from master..sysdatabases
SQL SERVER 2005:
select name from sys.databases
Note: Many enhancements were made to the database. Query all of the columns in sys.databases to understand the new enhancements like snapshot, etc.
Find ALL Procedures in a Database
SQL SERVER 2000:
select name from sysobjects where type='P'
SQL SERVER 2005:
select name from sys.procedures
Note: You can find whether the stored procedure execution is used in replication or if the stored procedure is a startup procedure. Execute the following queries:
select name from sys.procedures where is_execution_replicated=1
select name from sys.procedures where is_auto_executed=0
Find ALL tables in a Database
SQL SERVER 2000:
select name from sysobjects where type='U'
SQL SERVER 2005:
select name from sys.tables
Note: In SQL Server 2005, you can find whether a table is replicated. Execute the following query.
select * from sys.tables where is_replicated =1
Find ALL views in a Database
SQL SERVER 2000:
select name from sysobjects where type='V'
SQL SERVER 2005:
select name from sys.views
Note: In SQL Server 2005, you can find whether a view is replicated. Execute the following query.
select * from sys.views where is_replicated =1
Find ALL Triggers in a Database
SQL SERVER 2000:
select name from sysobjects where type='TR'
SQL SERVER 2005:
select name from sys.triggers where parent_class=1
Note: In SQL Server 2005, the triggers can be Assembly trigger (CLR) or a SQL trigger. In addition, we can find whether the trigger is an AFTER trigger or INSTEAD of trigger. Execute the following query:
select name from sys.triggers where type='TA'
select name from sys.triggers where type='TR'
select name from sys.triggers where is_instead_of_trigger=1
Find ALL SQL logins in a server
SQL SERVER 2000:
select * from master..syslogins where isntgroup=0 and isntname=0
SQL SERVER 2005:
select * from sys.sql_logins
Find ALL dependencies of the SQL Object in a Database
SQL SERVER 2000:
select * from sysdepends
SQL SERVER 2005:
select * from sys.sql_dependencies
Find ALL data types in SQL server
SQL SERVER 2000:
select * from systypes
SQL SERVER 2005:
select * from sys.systypes
Find ALL error messages in SQL server
SQL SERVER 2000:
select * from master..sysmessages
SQL SERVER 2005:
select * from sys.messages
Find ALL the database files of the current database
SQL SERVER 2000:
select name,filename from sysfiles
SQL SERVER 2005:
select name, physical_name from sys.database_files
Find the type of index
SQL SERVER 2000: We have to use indid column to determine the type of index from 0,1 or 255.
SQL SERVER 2005:
select object_name(object_id),name, type_desc from sys.indexes where type_desc ='CLUSTERED'
select object_name(object_id),name, type_desc from sys.indexes where type_desc ='HEAP'
select object_name(object_id),name, type_desc from sys.indexes where type_desc ='NONCLUSTERED'
select object_name(object_id),name, type_desc from sys.indexes where type_desc ='XML'