从逻辑上讲,存储过程由两部分组成:
1、头部。 头部定义了存储过程的名称、输入、输出参数以及其他一些各种各样的处理选项
2、主体。 主体包含了一个或多个运行时要执行的T-SQL语句。
简化语法如下:
CREATE PROC [ EDURE ] procedure_name [ ; number ]
[ { @parameter data_type }
[ VARYING ] [ = default ] [ OUTPUT ]
] [ ,n ]
[ WITH
{ RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ]
[ FOR REPLICATION ]
AS sql_statement [ n ]
存储过程源代码存储在master数据库中的syscomments表中,本身在sysobjects表中进行注册。
在sysobjects表中,id列为各种数据库对象的唯一标识,Name字段表示对象的名字,xtype表示对象的类型,例如自定义存储过程的类型为"P".可以有以下几种方法来确定数据库中是否已经存在特定的对象名称。
if object_id('ProcName') is not null-- exist(object_id('ProcName'))
if((select count(*) from sysobjects where name='ProcName')>0)
可以用以下方法查看未经加密的存储过程的代码:
sp_helptext 'ProcName'
select * from syscomments where id=object_id('ProcName')
列出当前数据库中的所有存储过程:
sp_stored_procedures
可以使用系统存储过程来重命名存储过程:
sp_rename @oldName,@newName,@objType
但是重命名存储过程会带来一系列与之相关的问题,有时候删除重建也许是更好的选择,命令执行后SQL SERVER 提示:
sp_rename 'haha','getMoreDataSet',object
---------------------------------------------
注意: 更改对象名的任一部分都可能破坏脚本和存储过程。
object 已重命名为 'getMoreDataSet'。
列出存储过程的相关对象:
一般情况下会产生一个或两个结果集一个该过程所依附的对象,一个是依附于该过程的对象
sp_depends 'ProcName'
更改存储过程:
可以使用alter procedure ProcName来修改存储过程,这个语句的语法和Create Procedure 的语法完全一样。使用这个语句的主要原因是可以避免对权限和相关数据库对象产生不必要的影响。因为Alter Procedure语句会保留原始存储过程的所有信息。sysobjects中的过程对象标识号(ID列)仍保持一致,存储过程的所有引用都保持原封不动。因此,使用Alter Procedure语句要比删除和重新创建该过程要更好一点。
删除存储过程:
drop procedure getMoreDataSet
存储过程的类型:
1、用户定义
2、系统
3、扩展
4、临时
5、全局临时
6、远程
还有几个数据库对象如:触发器、视图、用户定义函数它们本质上非常的相似。
存储过程的作用与优点:
1、数据完整性实施
存储过程是帮助你标准化并控制数据项,以实现信息验证甚至是最复杂约束的理想工具。
2、复杂业务规则和约束的一致性实现
T-SQL存储过程功能足够强大,因为他们可以同时合并过程语句和面向集合的语句。任何太复杂以至于其他约束难以实现的问题以及纯粹是过程而不只是面向集合的问题,都可以用存储过程的形式实现。
3、模块化设计
存储过程允许开发人员封装业务功能性,并给调用者提供一个简单的接口。
4、可维护性
通过存储过程可以隐藏数据库结构的细节,无论何时更改数据库结构,数据库管理员都可以减少或有希望消除更改系统中所有其他组件的需要。
5、减少网络流量
6、加快执行速度
存储过程以编译的形式放在数据库服务器的高速缓存中,当需要使用它们时,服务器不需要重新对他们解析和编译。
7、安全实施
防止用户直接对表进行访问,并强制他们使用存储过程执行特定的功能。按照功能性管理存储过程集合要比管理表级或列级权限要容易的多。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/shaoboyy/archive/2008/11/12/3281564.aspx
分享到:
相关推荐
6. 存储过程修改与变更:在对SQLServer存储过程进行修改和变更时,可能会遇到与现有数据库函数冲突的问题,需要掌握正确的方法来进行升级和批量修改,避免造成错误。 7. 异常处理的详细机制:在TRY块中包含潜在失败...
### SQL Server 存储过程中调用 WebService 的实现方法 #### 一、引言 在企业级应用开发中,Web Service 作为一种标准的接口技术,被广泛用于不同平台之间的服务交互。而在 SQL Server 数据库中直接调用 Web ...
这就是“sqlserver存储过程解密工具”所解决的问题。 SQL Server存储过程的加密通常是在开发或部署过程中,为了保护知识产权、防止未授权修改或者增加安全性而进行的。然而,在某些情况下,比如接手他人项目、排查...
在SQL Server数据库管理系统中,存储过程和触发器是两种非常重要的数据库编程元素,它们对于数据库设计和数据管理具有深远的影响。下面将详细讲解这两个概念及其相关的知识点。 **SQL存储过程**: 1. **定义**:SQL...
在SQL Server中,存储过程是一种预编译的SQL语句集合,它允许开发人员封装一组复杂的操作,并在需要时重复调用。存储过程对于数据库管理、数据处理和性能优化具有重要意义。本文主要介绍如何在SQL Server中导出和...
SQLserver存储过程异常处理
可以将SQL Server存储过程转为oracle存储过程的工具
在SQL Server 2008中,存储过程和触发器是数据库管理中不可或缺的重要组成部分,它们...通过深入学习《SQL Server 2008 存储过程与触发器详解》这本书,读者将能全面理解和掌握这两个概念,从而在实际项目中得心应手。
本篇将详细介绍如何在SQL Server存储过程中使用事务。 首先,事务有四个基本特性,即ACID(原子性、一致性、隔离性和持久性): 1. 原子性(Atomicity):事务中的所有操作要么全部完成,要么全部不完成,不会留下...
"SQL Server存储过程解密工具"是一款专门设计用于解密已加密的SQL Server存储过程的软件。通过这款工具,用户可以查看存储过程中的源代码,即使这些代码在数据库中是以加密形式存在的。描述中提到,该工具经过实践...
【C#创建SQL Server存储过程】在SQL Server 2005中,开发人员不再局限于使用T-SQL来创建存储过程、函数和触发器。得益于SQL Server 2005对.NET Common Language Runtime (CLR)的支持,我们可以使用C#、VB.NET等.NET...
### 执行SQL Server 存储过程并返回DataSet 在软件开发过程中,经常需要与数据库进行交互,其中一种常见的场景就是通过调用存储过程来获取数据并处理这些数据。本篇文章将详细探讨如何在C#中执行SQL Server的存储...
### SQL Server 存储过程 With Encryption 加密的解密方法 #### 背景与目的 在SQL Server中,为了保护存储过程中的敏感代码或逻辑,可以使用`WITH ENCRYPTION`选项对存储过程进行加密处理。这可以有效防止未经授权...
sql Server 通用分页存储过程 sql Server 通用分页存储过程 sql Server 通用分页存储过程 sql Server 通用分页存储过程
在SQL Server中,存储过程被认为是一种提升性能和...理解这些问题并应用适当的优化技术是确保SQL Server存储过程高效运行的关键。正确设计和优化的存储过程可以极大地提高数据库的性能,并促进代码的可维护性和安全性。
下面,我们将详细探讨如何在Visual Studio(以下简称VS)环境中进行SQL Server存储过程的中断点测试。 ### 一、准备工作:创建VS项目 在进行中断点测试前,首先需要在VS中创建一个新的项目。这一步骤是基础,确保...
以下是关于SQL Server存储过程的详细说明: 1. **存储过程的概念** 存储过程Procedure是一系列SQL语句的集合,它们在数据库中以编译好的形式存储,当需要执行时,只需要调用存储过程的名称并传入相应的参数。存储...
以下是针对"SQLSERVER存储过程例子"的详细解释。 1. **存储过程的概念**: 存储过程是一组为了完成特定功能的SQL语句,这些语句被组合在一起并保存在数据库中,用户可以通过调用存储过程的名字来执行这些语句。...
最后,存储过程可以实现程序设计和数据库操作逻辑功能上的相对独立,提高了系统的可维护性和可扩展性。 在VB6.0中调用SQL Server的存储过程需要遵守一定的规则和步骤。首先,需要创建一个ADO连接对象,用于连接SQL ...