存储过程是一组编译在单个执行计划中的 Transact-SQL 语句。Microsoft® SQL Server™ 2000 存储过程以四种方式返回数据: 输出参数,既可以返回数据(整型值或字符值等),也可以返回游标变量(游标是可以逐行检索的结果集)。
返回代码,始终是整型值。
SELECT 语句的结果集,这些语句包含在该存储过程内或该存储过程所调用的任何其它存储过程内。
可从存储过程外引用的全局游标。 
存储过程帮助在不同的应用程序之间实现一致的逻辑。在一个存储过程内,可以设计、编码和测试执行某个常用任务所需的 SQL 语句和逻辑。之后,每个需要执行该任务的应用程序只须执行此存储过程即可。将业务逻辑编入单个存储过程还提供了单个控制点,以确保业务规则正确执行。存储过程还可以提高性能。许多任务以一系列 SQL 语句来执行。对前面 SQL 语句的结果所应用的条件逻辑决定后面执行的 SQL 语句。如果将这些 SQL 语句和条件逻辑写入一个存储过程,它们就成为服务器上一个执行计划的一部分。不必将结果返回给客户端以应用条件逻辑,所有工作都可以在服务器上完成。下例中的 IF 语句显示了在一个过程中嵌入条件逻辑,以防止给应用程序发送结果集:IF (@QuantityOrdered < (SELECT QuantityOnHand
                  FROM Inventory
                  WHERE PartID = @PartOrdered) )
   BEGIN
   -- SQL statements to update tables and process order.
   END
ELSE
   BEGIN
   -- SELECT statement to retrieve the IDs of alternate items
   -- to suggest as replacements to the customer.
   END应用程序不必传输存储过程中的所有 SQL 语句:它们只须传输包含过程名和参数值的 EXECUTE 或 CALL 语句。存储过程还可以使用户不必知道数据库内的表的详细信息。如果一组存储过程支持用户需要执行的所有业务功能,则用户永远不必直接访问表,他们可以只执行特定的存储过程,这些过程为他们所熟悉的业务进程建立了模型。存储过程的这个用途的一个例证是 SQL Server 系统存储过程,它将用户从系统表中隔离出来。SQL Server 中包含一组系统存储过程,这些过程的名称通常以 sp_ 开头。这些系统存储过程支持运行 SQL Server 系统所需的所有管理任务。可以使用 Transact-SQL 中与管理相关的语句(如 CREATE TABLE)或系统存储过程来管理 SQL Server 系统,永远不必直接更新系统表。