Sql Server系列:开发存储过程
2013-03-18 19:56
260 查看
客户/服务器开发的主要目的在于将处理数据的程序移动到离数据尽可能近的地方。通过将处理数据的程序从客户应用程序移动到服务器,可以降低网络流量,并提高性能和数据的完整性。
要将处理数据的程序移动到离数据更近的地方,最常用的方法之一就是开发存储过程。
1、管理存储过程
1.1、create、alter和drop
存储过程是由如下的数据定义语言命令来管理的:create、alter和drop。
create用于创建存储过程,它是批处理中的第一个命令,批处理的正常结束就意味着存储过程创建成功。drop命令会从数据库中删除存储过程,alter命令会将原有的存储过程替换为新的代码。如果要修改存储过程,最好采用alter方法,而不要使用先删除,再重建的方式,因为后一种方法会丢失原来存储过程上所有的权限设置。
1.2、返回记录集
存储过程可以返回记录集。
1.3、编译存储过程
对应存储过程的编译是自动进行的。在第一次执行存储过程的时候,就会对存储过程进行编译,并将编译结果保存在内存中。如果重新启动了服务器,所有存储过程的编译结果就全部丢失。只有当再次调用它们时,才会重新对它们进行编译。
SQL Server使用Master.dbo.SysCacheObjects表来记录编译过的对象。要查看编译过的存储过程,可以运行下面的查询:
2、向存储过程传递数据
SQL Server存储过程可以使用很多的输入和输出参数。
2.1、输入参数
如果要使用输入参数向存储过程传递数据,可以在create procedure命令中的存储过程名之后列出需要添加的参数。每个参数都必须以@开始,一旦声明了输入参数,它就会成为该存储过程中的局部变量。就像声明局部变量一样,必须使用合法的数据类型来定义输入参数。在调用存储过程时,必须为这些输入变量提供值(除非该输入变量具有默认值)。
要将处理数据的程序移动到离数据更近的地方,最常用的方法之一就是开发存储过程。
1、管理存储过程
1.1、create、alter和drop
存储过程是由如下的数据定义语言命令来管理的:create、alter和drop。
create用于创建存储过程,它是批处理中的第一个命令,批处理的正常结束就意味着存储过程创建成功。drop命令会从数据库中删除存储过程,alter命令会将原有的存储过程替换为新的代码。如果要修改存储过程,最好采用alter方法,而不要使用先删除,再重建的方式,因为后一种方法会丢失原来存储过程上所有的权限设置。
CREATE PROCEDURE CategoryList AS SELECT CategoryName FROM Category
1.2、返回记录集
存储过程可以返回记录集。
EXEC CategoryList
1.3、编译存储过程
对应存储过程的编译是自动进行的。在第一次执行存储过程的时候,就会对存储过程进行编译,并将编译结果保存在内存中。如果重新启动了服务器,所有存储过程的编译结果就全部丢失。只有当再次调用它们时,才会重新对它们进行编译。
SQL Server使用Master.dbo.SysCacheObjects表来记录编译过的对象。要查看编译过的存储过程,可以运行下面的查询:
SELECT CASE(C.sql AS CHAR(35)) AS StoreProcedure, cacheobjtype,usecounts AS Count FROM Master.dbo.SysCacheObjects C JOIN Master.dbo.SysDatabases D ON C.dbid = D.dbid WHERE D.Name = DB_Name() AND ObjType = 'Proc' ORDER BY StoreProcedure
2、向存储过程传递数据
SQL Server存储过程可以使用很多的输入和输出参数。
2.1、输入参数
如果要使用输入参数向存储过程传递数据,可以在create procedure命令中的存储过程名之后列出需要添加的参数。每个参数都必须以@开始,一旦声明了输入参数,它就会成为该存储过程中的局部变量。就像声明局部变量一样,必须使用合法的数据类型来定义输入参数。在调用存储过程时,必须为这些输入变量提供值(除非该输入变量具有默认值)。
相关文章推荐
- 用 C++开发了一个Sql Server加密解密的存储过程,同时在此基础上写了两个加密解密的函数
- SQL Server系列(6) -- 存储过程
- Visual C# 2008+SQL Server 2005 数据库与网络开发--4.6.1 存储过程简介
- 多层开发中,经常写SQL SERVER存储过程的朋友看过来!
- SQL Server 2005存储过程开发的一点经验
- Sql Server系列:SQL语句查询数据库中表、视图、存储过程等组成
- SQL Server 2005存储过程开发的一点经验
- 多层开发中,经常写SQL SERVER存储过程的朋友看过来!
- SQL Server 2005系列教学(9) SQL 存储过程
- Sql Server系列:存储过程
- mysql 开发基础系列17 存储过程和函数(上)
- SQL Server 2005系列教学_SQL 存储过程
- 8天掌握EF的Code First开发系列之5 视图、存储过程和异步API
- SQL Server 2005存储过程开发的一点经验
- 存储过程系列之调试存储过程 SQL Server 2005
- SQL Server 开发指南---存储过程
- mysql 开发基础系列18 存储过程和函数(下)
- SQL Server 开发之 分页存储过程
- SQL Server 系统存储过程 长用的命令
- SQL Server 存储过程的分页方案比拼