编辑: 无理的喜欢 2019-07-18

男'

;

步骤 4:单击 执行 按钮,即可完成存储过程的创建操作,执行结果如图 13-6 所示. 图13-5 修改 SELECT 语句 图13-6 创建存储过程 第13 章 存储过程的应用

197 13.3.2 创建存储过程的语法格式 使用 CREATE PROCEDURE 语句可以创建存储过程,语法格式如下: CREATE PROCEDURE [schema_name.] procedure_name [ ;

number ] { @parameter data_type } [ VARYING ] [ = default ] [ OUT | OUTPUT ] [READONLY] [ WITH ] [ FOR REPLICATION ] AS 主要参数介绍如下. ? procedure_name:新存储过程的名称,并且在架构中必须唯一.可在 procedure_name 前面使用一 个#字符号(#procedure_name)来创建局部临时过程,使用两个#字符号 (##procedure_name)来 创建全局临时过程.对于 CLR 存储过程,不能指定临时名称. ? number:是可选整数,用于对同名的过程分组.使用一个 DROP PROCEDURE 语句可将这些分组 过程一起删除.例如,称为 orders 的应用程序可能使用名为 orderproc;

1、orderproc;

2 等的过程. DROP PROCEDURE orderproc 语句将删除整个组.如果名称中包含分隔标识符,则数字不应包含 在标识符中;

只应在 procedure_name 前后使用适当的分隔符. ? @ parameter:存储过程中的参数.在CREATE PROCEDURE 语句中可以声明一个或多个参数.除 非定义了参数的默认值或者将参数设置为等于另一个参数,否则用户必须在调用过程时为每个声明 的参数提供值.存储过程最多可以有

2100 个参数.如果过程包含表值参数,并且该参数在调用中 缺失,则传入空表默认值.通过将 at 符号(@)用作第一个字符来指定参数名称.每个过程的参数 仅用于该过程本身;

其他过程中可以使用相同的参数名称. 默认情况下, 参数只能代替常量表达式, 而不能用于代替表名、列名或其他数据库对象的名称.如果指定了 FOR REPLICATION,则无法声 明参数. ? date_type:指定参数的数据类型,所有数据类型都可以用作 Transact-SQL 存储过程的参数.可以 使用用户定义表类型来声明表值参数作为 Transact-SQL 存储过程的参数. 只能将表值参数指定为输 入参数,这些参数必须带有 READONLY 关键字.cursor 数据类型只能用于 OUTPUT 参数.如果指 定了 cursor 数据类型,则还必须指定 VARYING 和OUTPUT 关键字.可以为 cursor 数据类型指定 多个输出参数.对于 CLR 存储过程,不能指定 char、varchar、text、ntext、image、cursor、用户定 义表类型和 table 作为参数. ? default:存储过程中参数的默认值.如果定义了 default 值,则无须指定此参数的值即可执行过程. 默认值必须是常量或 NULL.如果过程使用带 LIKE 关键字的参数,则可包含下列通配符:%、_、 [] 和[^]. ? OUTPUT:指示参数是输出参数.此选项的值可以返回给调用 EXECUTE 的语句.使用 OUTPUT 参数将值返回给过程的调用方. 除非是 CLR 过程, 否则 text、 ntext 和image 参数不能用作 OUTPUT 参数.使用 OUTPUT 关键字的输出参数可以为游标占位符,CLR 过程除外.不能将用户定义表类 型指定为存储过程的 OUTPUT 参数. ? READONLY:指示不能在过程的主体中更新或修改参数.如果参数类型为用户定义的表类型,则 必须指定 READONLY. ? RECOMPILE:表明 SQL Server

2016 不会保存该存储过程的执行计划,该存储过程每执行一次都要 重新编译.在使用非典型值或临时值而不希望覆盖保存在内存中的执行计划时,就可以使用 RECOMPILE 选项. SQL Server 从入门到项目实践(超值版)

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题