SQL Server 7.0 Useful Undocumented Stored Procedures | Database Journal

SQL Server 7.0 Useful Undocumented Stored Procedures

Apr 3, 2001
4 minute read


Introduction

In this article, I want to tell you about some useful undocumented
stored procedures shipped with SQL Server 7.0.


sp_columns_rowset
This stored procedure returns the complete columns description,
including the length, type, name, and so on.
Syntax





sp_columns_rowset tbname [, table_schema ] [, column_name]





where
tbname       – is the table name. tbname is sysname.
table_schema – is the table schema. table_schema is sysname,
               with a default of NULL.
column_name  – is the column name. column_name is sysname,
               with a default of NULL.
This is the example:





USE pubs
GO
EXEC sp_columns_rowset ‘authors’
GO







sp_fixindex
This stored procedure can be used to fix a corruption in a system table
by recreate the index.
Syntax





sp_fixindex  database, systemcatalog, ind_id





where
database      – is the database name. database is sysname.
systemcatalog – is the system table name. systemcatalog is sysname.
ind_id        – is the index id value. ind_id is int
Note. Before using this stored procedure the database has to be
      in single user mode.
See this link for more information:
“How can I fix a corruption in a system table?”
http://www.windows2000faq.com/Articles/Index.cfm?ArticleID=14051
This is the example:





USE pubs
GO
EXEC sp_fixindex pubs, sysindexes, 2
GO







sp_MSexists_file
This stored procedure can be used to determine whether the particular
file exists in the particular directory or not.
Syntax





sp_MSexists_file full_path, filename





where
full_path – is the full path to the file. full_path is nvarchar(512).
filename  – is the file name. filename is nvarchar(255).
To check if file textcopy.exe exists in the C:MSSQL7BINN directory
(path by default), run:





DECLARE @retcode int
EXEC @retcode = sp_MSexists_file ‘C:MSSQL7BINN’, ‘textcopy.exe’
IF @retcode = 1
  PRINT ‘File Exist’
ELSE
  PRINT ‘File does not Exist’







sp_MSforeachdb
Sometimes, you need to perform the same actions for all databases.
You can make cursor for this purpose, but you can also use
sp_MSforeachdb stored procedure in this case.
You can use this stored procedure to check all databases with
DBCC CHECKDB statement:





EXEC sp_MSforeachdb @command1=”print ‘?’ DBCC CHECKDB (‘?’)”







sp_MSforeachtable
Sometimes, you need to perform the same actions for all tables in the
database. You can make cursor for this purpose, but you can also use
sp_MSforeachtable stored procedure in this case.
You can use this stored procedure to rebuild all indexes in your
database. Try to schedule it to execute when your server is not
very hard work.





EXEC sp_MSforeachtable @command1=”print ‘?’ DBCC DBREINDEX (‘?’)”







sp_MShelpcolumns
This stored procedure returns the complete schema for a table, including
the length, type, name, and whether a column is computed.
Syntax





sp_MShelpcolumns tablename [, flags] [, orderby] [, flags2]





where
tablename – is the table name. tablename is nvarchar(517).
flags     – flags is int, with a default of 0.
orderby   – orderby is nvarchar(10), with a default of NULL.
flags     – flags2 is int, with a default of 0.
To get the full columns description for the authors table in the
pubs database, run:





USE pubs
GO
EXEC sp_MShelpcolumns ‘authors’
GO







sp_MShelpindex
This stored procedure returns information about name, status, fill
factor, index columns names, and about used file group for the given
table.
Syntax





sp_MShelpindex tablename [, indexname] [, flags]





where
tablename – is the table name. tablename is nvarchar(517).
indexname – is the index name. indexname is nvarchar(258).
flags     – flags is int, with a default of NULL.
To get the indexes description for the authors table in the
pubs database, run:





USE pubs
GO
EXEC sp_MShelpindex ‘authors’
GO







sp_MShelptype
This stored procedure returns many useful information about system
data types and about user data types.
Syntax





sp_MShelptype [typename] [, flags]





where
typename – is the type name. typename is nvarchar(517),
           with a default of NULL.
flags    – flags is nvarchar(10), with a default of NULL.
To get information about all built-in and user defined data types
in the pubs database, run:





USE pubs
GO
EXEC sp_MShelptype
GO







sp_MSindexspace
This stored procedure returns the size in kb, which the indexes in
the particular table use.
Syntax





sp_MSindexspace tablename [, index_name]





where
tablename  – is the table name. tablename is nvarchar(517).
index_name – is the index name. index_name is nvarchar(258),
             with a default of NULL.
To determine the space used by the indexes from the authors table
in the pubs database, run:





USE pubs
GO
EXEC sp_MSindexspace ‘authors’
GO







sp_MSkilldb
This stored procedure sets database to suspect and let dbcc dbrepair
to kill it. You should run this sp from the context of the master
database. Use it very carefully.
Syntax





sp_MSkilldb dbname





where
dbname – is the database name. dbname is nvarchar(258).
To kill the pubs database, run:





USE master
GO
EXEC sp_MSkilldb ‘pubs’
GO







sp_MStablespace
This stored procedure returns the number of rows and the space
the table and index use.
Syntax





sp_MStablespace [name] [, id]





where
name – is the table name. name is nvarchar(517).
id   – id is int, with a default of NULL.
To determine the space used by the authors table in the pubs database,
run:





USE pubs
GO
EXEC sp_MStablespace ‘authors’
GO





Here is the result set from my machine:





Rows        DataSpaceUsed IndexSpaceUsed
———– ————- ————–
23          8             24







sp_tempdbspace
This stored procedure can be used to get the total size and the space
used by the tempdb database. You should execute sp_tempdbspace without
parameters.
Syntax





sp_tempdbspace





This is the example:





EXEC sp_tempdbspace





Here is the result set from my machine:





database_name database_size           spaceused
————- ———————– —————————
tempdb        8.500000                .703125







sp_who2
This stored procedure returns information about current SQL Server 7.0
users and processes as sp_who, but provides more detailed information.
sp_who2 returns CPUTime, DiskIO, LastBatch and ProgramName in addition
to sp_who.
Syntax





sp_who [loginame]





where
loginame – the user’s login name. If not specified, the procedure
           reports on all active users of SQL Server.
This example returns information for the ‘sa’ login:





EXEC sp_who2 ‘sa’







»


See All Articles by Columnist
Alexander Chigrik

Alexander Chigrik

I am the owner of MSSQLCity.Com - a site dedicated to providing useful information for IT professionals using Microsoft SQL Server. This site contains SQL Server Articles, FAQs, Scripts, Tips and Test Exams.

Database Journal Logo

DatabaseJournal.com publishes relevant, up-to-date and pragmatic articles on the use of database hardware and management tools and serves as a forum for professional knowledge about proprietary, open source and cloud-based databases--foundational technology for all IT systems. We publish insightful articles about new products, best practices and trends; readers help each other out on various database questions and problems. Database management systems (DBMS) and database security processes are also key areas of focus at DatabaseJournal.com.

Property of TechnologyAdvice. © 2026 TechnologyAdvice. All Rights Reserved

Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.