立即登录

2017-07-27存储过程及其创建有何

05/05 19:22:20

2017-07-27

存储过程及其创建的特点是什么?

存储过程可以使管理数据库和显示有关数据库及其用户的信息变得更加容易。 存储过程是 SQL 语句和可选控制流语句的预编译集合,以名称存储并作为一个单元进行处理。 存储过程存储在数据库中,应用程序一次调用即可执行,并允许用户声明变量、条件执行等强大的编程功能。 存储过程可以包含程序流、逻辑和对数据库的查询。 它们可以接受参数、输出参数、返回单个或多个结果集以及返回值。 存储过程可以用于任何使用 SQL 语句的目的,它的优点是可以在单个存储过程中执行一系列 SQL 语句。 可以在自己的存储过程中引用其他的存储过程,这样可以简化一系列复杂的语句。创建存储过程完全...

存储过程可以使管理数据库和显示有关数据库及其用户的信息变得更加容易。 存储过程是 SQL 语句和可选控制流语句的预编译集合,以名称存储并作为一个单元进行处理。 存储过程存储在数据库中,应用程序一次调用即可执行,并允许用户声明变量、条件执行等强大的编程功能。

存储过程可以包含程序流、逻辑和对数据库的查询。 它们可以接受参数、输出参数、返回单个或多个结果集以及返回值。 存储过程可以用于任何使用SQL语句的目的,它的优点是可以在一个存储过程中执行一系列的SQL语句。

您可以从自己的存储过程中引用其他存储过程卡盟,这可以简化一系列复杂的句子。 存储过程在创建时在服务器上编译,因此执行速度比单个 SQL 语句快。 存储过程的功能取决于数据库提供的功能。 创建存储过程 您可以使用 Transact-SQL 语句 CREATEPROCEDURE 来创建存储过程。

在创建存储过程之前,请考虑以下事项: 您不能将 CREATEPROCEDURE 语句与其他 SQL 语句合并到一个批处理中。 创建存储过程的权限默认为数据库所有者,他可以将此权限授予其他用户。

存储过程是其名称必须遵循标识符规则的数据库对象。 存储过程只能在当前数据库中创建。 创建存储过程时,指定:所有输入参数和输出参数返回给调用过程或批处理。 执行数据库操作的编程语句,包括调用其他过程。

返回到调用过程或批处理以指示成功或失败(以及原因)的状态值。 系统存储过程 Microsoft® SQL Server™ 2000 中的许多管理活动都是通过称为系统存储过程的特殊过程来执行的。

系统存储过程创建并存储在master数据库中,前缀为sp_。 系统存储过程可以从任何数据库执行,而无需使用主数据库名称完全限定存储过程名称。 强烈建议您不要创建以 sp_ 为前缀的存储过程。

SQL Server 仍按以下顺序查找以 sp_ 开头的存储过程: 在 master 数据库中查找存储过程。 根据提供的任何限定符(数据库名称或所有者)查找存储过程。 如果没有指定所有者,则使用 dbo 作为所有者来查找存储过程。

由于这个原因,总是首先检查主数据库,即使当前数据库中可能存在以 sp_ 为前缀的用户创建的存储过程(尽管存储过程是用数据库名称限定的)。 重要 如果用户创建的存储过程与系统存储过程同名,则永远不会执行用户创建的存储过程。

分组 如果将不同的标识号分配给过程,则可以创建与现有存储过程同名的过程,这样可以对这些过程进行逻辑分组。 可以同时删除同名的分组程序。 在同一应用程序中使用的过程通常以这种形式分组。

例如,my_app 应用程序的过程可能命名为 my_proc;1、my_proc;2,等等。 删除 my_proc 会删除整个组。 当过程被分组时,很难删除组内的单个过程。 临时存储过程 私有和全局临时存储过程类似于临时表,可以通过在过程名称中添加#和##前缀来创建。

#表示本地暂存进程,##表示全局暂存进程。 SQL Server 关闭后,这个进程将不复存在。 当连接到不支持重用 Transact-SQL 语句或批处理执行计划的早期版本的 SQL Server 时,临时存储过程很有用。

连接到SQLServer2000的应用程序应该使用sp_executesql系统存储过程而不是临时存储过程。 有关详细信息,请参阅执行计划缓存和重用。 只有创建本地临时过程的连接才能执行该过程。 当连接关闭时(用户从 SQLServer 注销)sql 查看存储过程脚本,该过程将被手动删除。

任何连接都可以执行全局临时存储过程。 只有在创建该过程的用户使用的连接关闭并且该过程的当前执行版本使用的所有其他连接都已完成运行后,全局临时存储过程才会停止存在。 一旦用于创建过程的连接关闭,它将不再允许执行全局临时存储过程。

sql 查看存储过程脚本_sql分页存储_sql 查看存储过程脚本

只有那些已经开始执行存储过程的连接才被允许完成该过程。 如果直接在tempdb数据库中创建一个没有#或##前缀的存储过程,因为每次启动SQLServer都会重新创建tempdb,所以SQLServer关闭时会手动删除该存储过程。

直接在 tempdb 中创建的过程在创建该过程的连接中仍然存在。 与任何其他对象一样,可以授予、拒绝和撤销其他用户执行此临时存储过程的权限。 CREATEPROCEDURE 创建一个存储过程,它是可以接受和返回用户提供的参数的 Transact-SQL 语句的集合。

可以创建一个过程以供永久使用、在一个会话中临时使用(局部临时过程)或在所有会话中临时使用(全局临时过程)。 还可以创建在 Microsoft® SQL Server™ 启动时手动运行的存储过程。

句型 CREATEPROC[EDURE]procedure_name[;number][{@parameterdata_type}[VARYING][=default][OUTPUT]][,.

. . n][WITH{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}][FORREPLICATION]ASsql_statement[.

. . n] parameter procedure_name 新存储过程的名称。 过程名称必须符合标识符规则,并且对于数据库及其所有者必须是唯一的。 有关详细信息,请参阅使用标识符。 要创建局部临时过程,可以在procedure_name 后面加一个数字符号(#procedure_name),要创建全局临时过程,可以在procedure_name 后面加两个数字符号(##procedure_name)。

全名(包括#或##)不能超过128个字符。 指定进程所有者的名称是可选的。 ;number 是一个可选的整数,用于对同名过程进行分组,这样同一个组中的过程可以用一个DROPPROCEDURE语句一起删除。

例如,名为 orders 的应用程序使用的过程可以命名为 orderproc;1、orderproc;2sql 查看存储过程脚本,等等。 DROPPROCEDUREorderproc 语句将删除整个组。 如果名称包含定界标识符,则标识符中不应包含数字,并且应仅在 procedure_name 周围使用适当的定界符。

最新资讯